<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wie könnte GetWindowFromProcess() aussehen?]]></title><description><![CDATA[<p>Hallo!</p>
<p>Solch eine Funktion würde ich benötigen. Das Handle auf das Hauptfenster eines Prozess handles bekommen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180293/wie-könnte-getwindowfromprocess-aussehen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 11:08:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180293.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Apr 2007 22:53:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Mon, 30 Apr 2007 22:53:48 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Solch eine Funktion würde ich benötigen. Das Handle auf das Hauptfenster eines Prozess handles bekommen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276664</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Mon, 30 Apr 2007 22:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Mon, 30 Apr 2007 23:16:45 GMT]]></title><description><![CDATA[<p>Dazu musst du erstmal definieren was ein Hauptfenster ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276680</guid><dc:creator><![CDATA[JK...]]></dc:creator><pubDate>Mon, 30 Apr 2007 23:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Mon, 30 Apr 2007 23:56:49 GMT]]></title><description><![CDATA[<p>Der Prozess hat ein Fenster, Titel unbekannt.</p>
<p>Ich möchte durch den handle des prozesses den handle des einzigen fensters eben dessen bekommen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276695</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Mon, 30 Apr 2007 23:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 00:22:50 GMT]]></title><description><![CDATA[<p>Alle fenster durchgehen (EnumWindows() oder so) und mit z.b. GetWindowThreadProcessId() die Prozess ID mit der von deinem Prozess vergleichen. An alle Prozess IDs kommst z.b. mit CreateToolhelp32Snapshot().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276703</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Tue, 01 May 2007 00:22:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 00:23:39 GMT]]></title><description><![CDATA[<p>Okay danke wird schon klappen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276704</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Tue, 01 May 2007 00:23:39 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 14:07:17 GMT]]></title><description><![CDATA[<p>Habs aber nicht getestet:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;assert.h&gt;
#include &lt;windows.h&gt;

typedef std::vector&lt;HWND&gt; ProcessWindows;

BOOL CALLBACK WndFromProcessProc(HWND,LPARAM);

struct STransmitData
{
    DWORD           dwPID;
    ProcessWindows* pWnds;
    bool            fSkip;
};

bool GetWindowFromProcess(DWORD dwPID, ProcessWindows&amp; cwdWindows, bool fSkipChilds)
{
   STransmitData tdData;
   tdData.dwPID = dwPID;
   tdData.pWnds = &amp;cwdWindows;
   tdData.fSkip = fSkipChilds;
   return (EnumWindows(WndFromProcessProc, reinterpret_cast&lt;LPARAM&gt;(&amp;tdData)) != 0);
}

BOOL CALLBACK WndFromProcessProc(HWND hWnd, LPARAM lParam)
{
   STransmitData* pData = reinterpret_cast&lt;STransmitData*&gt;(lParam);

   assert(pData);

   DWORD dwPID;
   GetWindowThreadProcessId(hWnd, &amp;dwPID);
   if(pData-&gt;dwPID == dwPID)
   {
      if(!fSkipChilds)
         pData-&gt;pWnds-&gt;push_back(hWnd);
      else if(GetWindow(hWnd, GW_CHILD))
         pData-&gt;pWnds-&gt;push_back(hWnd);
   }
   return (TRUE);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1276952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276952</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 01 May 2007 14:07:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 21:57:46 GMT]]></title><description><![CDATA[<p>Oh das wäre nicht nötig gewesen, habs schon geschafft.<br />
Aber trotzdem danke.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277220</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Tue, 01 May 2007 21:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 21:59:31 GMT]]></title><description><![CDATA[<p>Willste eventuell ne kleine Entschädigung das du den Code geschrieben hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277221</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Tue, 01 May 2007 21:59:31 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 23:20:10 GMT]]></title><description><![CDATA[<p>ceplusplus@loggedoff schrieb:</p>
<blockquote>
<p>Willste eventuell ne kleine Entschädigung das du den Code geschrieben hast?</p>
</blockquote>
<p>Och, wenne schon so fragst, ich schick Dir die Rechnung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> .</p>
<p>Aber Du kannst mir mal Deine Version zeigen, würd mich mal interessieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277254</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 01 May 2007 23:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 23:31:29 GMT]]></title><description><![CDATA[<p>CodeFinder, Dein Trolldetektor funktioniert nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /><br />
Da ist grade so ein Idiot, der sich die Namen von bekannten &quot;UnRegs&quot; nimmt und damit herumtrollt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277256</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 01 May 2007 23:31:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Tue, 01 May 2007 23:37:51 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277259</guid><dc:creator><![CDATA[märker]]></dc:creator><pubDate>Tue, 01 May 2007 23:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie könnte GetWindowFromProcess() aussehen? on Wed, 02 May 2007 13:07:03 GMT]]></title><description><![CDATA[<p>Ist ziemlich verbaut und schon wieder verschmissen, aber hier:</p>
<pre><code class="language-cpp">bool __stdcall windowEnumerateProcess(HWND windowHandle, LPARAM lParam)
{
	DWORD currentProcessId;

	GetWindowThreadProcessId(windowHandle, &amp;currentProcessId);

	if(currentProcessId == KlasseA::getInstance().getServerProcessId())
		KlasseA::getInstance().setServerWindowHandle(windowHandle);

	return true;
}
</code></pre>
<pre><code class="language-cpp">serverProcessSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

		serverProcessEntry.dwSize = sizeof(serverProcessEntry);
		handleFound = Process32First(serverProcessSnapShot, &amp;serverProcessEntry);

		for(; handleFound; handleFound = Process32Next(serverProcessSnapShot, &amp;serverProcessEntry))
		{	
			serverProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION, false, serverProcessEntry.th32ProcessID);		

			rowHelper = serverProcessEntry.szExeFile;		

			if(rowHelper == dataBase[0])		
			{
				// MessageBox(NULL, &quot;vcded.exe found&quot;, &quot;&quot;, MB_OK);
				serverProcessId = serverProcessEntry.th32ProcessID;
				EnumWindows(reinterpret_cast&lt;WNDENUMPROC&gt;(windowEnumerateProcess), 0);

				serverListBoxHandle = FindWindowEx(serverWindowHandle, 0, &quot;ListBox&quot;, 0);
				serverEditFieldHandle = FindWindowEx(serverWindowHandle, 0, &quot;Edit&quot;, 0);

				EnableWindow(buttonHandles[1], true);
				SendMessage(labelHandle, WM_SETTEXT, 0, reinterpret_cast&lt;LPARAM&gt;(&quot; Server: FOUND&quot;));

				break;
			}
		}
</code></pre>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277539</guid><dc:creator><![CDATA[ceplusplus]]></dc:creator><pubDate>Wed, 02 May 2007 13:07:03 GMT</pubDate></item></channel></rss>