<?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[Prüfen ob Programm aktiv ist (Hab da ein problem)]]></title><description><![CDATA[<p>Hi leutz!<br />
Ich bin gerade dabei, meine ersten gehversuche im Game Trainer Programmieren in C++ zu machen. Eigentlich klappt es ja bis jetzt alles ganz gut, nur habe ich da ein kleines Problem. Ich möchte, das mein Trainer erst prüft, ob das Spiel auch gerade läuft das er bearbeiten soll. Dazu nehme ich folgenden Code:</p>
<pre><code class="language-cpp">void CTrainerDlg::OnShow() 
{
	HWND hWnd;
	HANDLE hproc;
	DWORD procid;
	DWORD rw = 0;

	unsigned adress = 0x00501370; //Hier liegen die Mineralien
	int buffer = 0;

	hWnd = ::FindWindow(NULL, _T(&quot;Starcraft&quot;));
	if(!hWnd)
	MessageBox(&quot;Starcraft wurde nicht gefunden!&quot;,&quot;Error&quot;);

	GetWindowThreadProcessId(hWnd, &amp;procid);
	hproc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procid);

	ReadProcessMemory(hproc,(LPCVOID)adress,&amp;buffer,
					sizeof(buffer),&amp;rw);

	m_iAdresse = buffer;
	UpdateData(FALSE);

	CloseHandle(hproc);
}
</code></pre>
<p>Das Funktioniert ja auch ganz gut. Wenn das Spiel nicht läuft, gibts ne fehlermeldung. Das problem bei der ganzen sache ist jetzt, dass wenn ich nun einen Ordner offen habe der Starcraft heißt, &quot;denkt&quot; mein Programm, das es sich hierbeich auch um das Spiel handelt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Wie kann ich es machen, das mein Trainer erkennt, ob das &quot;echte&quot; Starcraft, also das Spiel aktiv ist?</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/45386/prüfen-ob-programm-aktiv-ist-hab-da-ein-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 00:58:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/45386.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Aug 2003 20:05:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Prüfen ob Programm aktiv ist (Hab da ein problem) on Sat, 09 Aug 2003 20:05:13 GMT]]></title><description><![CDATA[<p>Hi leutz!<br />
Ich bin gerade dabei, meine ersten gehversuche im Game Trainer Programmieren in C++ zu machen. Eigentlich klappt es ja bis jetzt alles ganz gut, nur habe ich da ein kleines Problem. Ich möchte, das mein Trainer erst prüft, ob das Spiel auch gerade läuft das er bearbeiten soll. Dazu nehme ich folgenden Code:</p>
<pre><code class="language-cpp">void CTrainerDlg::OnShow() 
{
	HWND hWnd;
	HANDLE hproc;
	DWORD procid;
	DWORD rw = 0;

	unsigned adress = 0x00501370; //Hier liegen die Mineralien
	int buffer = 0;

	hWnd = ::FindWindow(NULL, _T(&quot;Starcraft&quot;));
	if(!hWnd)
	MessageBox(&quot;Starcraft wurde nicht gefunden!&quot;,&quot;Error&quot;);

	GetWindowThreadProcessId(hWnd, &amp;procid);
	hproc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procid);

	ReadProcessMemory(hproc,(LPCVOID)adress,&amp;buffer,
					sizeof(buffer),&amp;rw);

	m_iAdresse = buffer;
	UpdateData(FALSE);

	CloseHandle(hproc);
}
</code></pre>
<p>Das Funktioniert ja auch ganz gut. Wenn das Spiel nicht läuft, gibts ne fehlermeldung. Das problem bei der ganzen sache ist jetzt, dass wenn ich nun einen Ordner offen habe der Starcraft heißt, &quot;denkt&quot; mein Programm, das es sich hierbeich auch um das Spiel handelt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Wie kann ich es machen, das mein Trainer erkennt, ob das &quot;echte&quot; Starcraft, also das Spiel aktiv ist?</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/328095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/328095</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sat, 09 Aug 2003 20:05:13 GMT</pubDate></item><item><title><![CDATA[Reply to Prüfen ob Programm aktiv ist (Hab da ein problem) on Sun, 10 Aug 2003 14:08:39 GMT]]></title><description><![CDATA[<p>hi!</p>
<p>Schau doch einfach auf den ClassName des gefundenen Fensters -&gt; Spy++!<br />
Explorer Fenster haben z.B. &quot;ExploreWClass&quot;</p>
<p>mfG<br />
cppguru</p>
]]></description><link>https://www.c-plusplus.net/forum/post/328437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/328437</guid><dc:creator><![CDATA[cppguru]]></dc:creator><pubDate>Sun, 10 Aug 2003 14:08:39 GMT</pubDate></item><item><title><![CDATA[Reply to Prüfen ob Programm aktiv ist (Hab da ein problem) on Sun, 10 Aug 2003 19:12:45 GMT]]></title><description><![CDATA[<p>Ahhh danke! Jetzt unktionierts! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Für die die das selbe Problem haben: Man muss nur mit dem Spy++ die Klasse vom Spiel herrausfinden. Selbst bei einem Fullscreen game funktioniert das, muss nur schnell das finder tool in die Anwendung ziehen, wenn sie in den Fullscreen modus geht. Dabei kann es allerdings auch passieren, das sie abschmiert und euer Bildschirm dunkel bleibt. Der Taskmanager dürfte das Problem lösen, aber speichert auf alle fälle alles ab, bevor ich das macht.<br />
Einige Spiele bieten auch einen modus an, mit dem ihr es im Fenstermodus starten könnt. Schaut mal in die Anleitung oder bei google nach.<br />
Wenn ihr nun den Klassen namen habt, müsst ihr nur noch folgendes tun:</p>
<p>hWnd = ::FindWindow(NULL, _T(&quot;Starcraft&quot;));<br />
Wenn ihr das so belasst, ist es Windows egal; was auch immer Starcraft heißt, wird als das ziel betrachtet, selbst wenn es sich um einen Ordner handelt.<br />
In meinem Spiel(also Anwendung) heißt die Klasse 'SWarClass'.<br />
Wenn ich nun folgendes mache:<br />
hWnd = ::FindWindow(SWarClass, _T(&quot;Starcraft&quot;));</p>
<p>Reagiert mein Programm nur noch, wenn es sich auch wirklich um Starcraft handelt, da es nun auch auf die dazugehörige Klasse achtet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/328642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/328642</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sun, 10 Aug 2003 19:12:45 GMT</pubDate></item></channel></rss>