<?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[katastrophale Performance]]></title><description><![CDATA[<p>Hallo <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>
<p>Ich habe folgendes Programm:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#pragma comment(lib, &quot;User32.lib&quot;)

HWND HWC3 = FindWindow(NULL,TEXT(&quot;Warcraft III&quot;));

void keydown()
{
	HWND SetActiveWindow(HWC3);
	SendMessage(HWC3,WM_KEYDOWN,VK_OEM_4,0);
	SendMessage(HWC3,WM_KEYDOWN,VK_OEM_6,0);
}

void keyup()
{
	HWND SetActiveWindow(HWC3);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_4,0);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_6,0);
}

void schliessen()
{
	HWND SetActiveWindow(HWC3);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_4,0);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_6,0);
}

int main()
{
	if (!HWC3)
	{
		MessageBox(0, TEXT(&quot;Du musst erst Warcraft III starten&quot;), 0, 0);		
	}
	else
	{
		while (true)
		{
			if(GetAsyncKeyState(VK_HOME))
			{
				keydown();
			}
			if(GetAsyncKeyState(VK_END))
			{
				keyup();
			}
			if(GetAsyncKeyState(VK_ESCAPE))
			{
				schliessen();			
			}
		}
	}
}
</code></pre>
<p>Wenn ich Warcraft gestartet hab, und das Programm starte, funktioniert dieses Programm zwar, aber es verbraucht annähernd 100% der Prozessorleistung.</p>
<p>Liegt das an der while (true) Schleife ? Und wenn ja, was kann ich dagegen tun ?</p>
<p>Vielen Dank !</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185079/katastrophale-performance</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 16:08:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185079.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Jun 2007 16:22:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to katastrophale Performance on Thu, 21 Jun 2007 16:23:19 GMT]]></title><description><![CDATA[<p>Hallo <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>
<p>Ich habe folgendes Programm:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#pragma comment(lib, &quot;User32.lib&quot;)

HWND HWC3 = FindWindow(NULL,TEXT(&quot;Warcraft III&quot;));

void keydown()
{
	HWND SetActiveWindow(HWC3);
	SendMessage(HWC3,WM_KEYDOWN,VK_OEM_4,0);
	SendMessage(HWC3,WM_KEYDOWN,VK_OEM_6,0);
}

void keyup()
{
	HWND SetActiveWindow(HWC3);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_4,0);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_6,0);
}

void schliessen()
{
	HWND SetActiveWindow(HWC3);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_4,0);
	SendMessage(HWC3,WM_KEYUP,VK_OEM_6,0);
}

int main()
{
	if (!HWC3)
	{
		MessageBox(0, TEXT(&quot;Du musst erst Warcraft III starten&quot;), 0, 0);		
	}
	else
	{
		while (true)
		{
			if(GetAsyncKeyState(VK_HOME))
			{
				keydown();
			}
			if(GetAsyncKeyState(VK_END))
			{
				keyup();
			}
			if(GetAsyncKeyState(VK_ESCAPE))
			{
				schliessen();			
			}
		}
	}
}
</code></pre>
<p>Wenn ich Warcraft gestartet hab, und das Programm starte, funktioniert dieses Programm zwar, aber es verbraucht annähernd 100% der Prozessorleistung.</p>
<p>Liegt das an der while (true) Schleife ? Und wenn ja, was kann ich dagegen tun ?</p>
<p>Vielen Dank !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310849</guid><dc:creator><![CDATA[Bit2_Gosu]]></dc:creator><pubDate>Thu, 21 Jun 2007 16:23:19 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Thu, 21 Jun 2007 16:35:08 GMT]]></title><description><![CDATA[<p>Den Thread für kurze Zeit schlafen legen....</p>
<p>Ein yield ändert zwar nix an der Prozessorauslastung, allerdings<br />
haben andere Prozesse &quot;Vorrang&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310859</guid><dc:creator><![CDATA[BetterPerformance]]></dc:creator><pubDate>Thu, 21 Jun 2007 16:35:08 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Thu, 21 Jun 2007 16:50:53 GMT]]></title><description><![CDATA[<p>ok, also bei ich sleep() ein. Die Idee is schon mal super</p>
<p>Und was meintest du mit dem yield ?? <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/1310874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310874</guid><dc:creator><![CDATA[Bit2_Gosu]]></dc:creator><pubDate>Thu, 21 Jun 2007 16:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Thu, 21 Jun 2007 17:39:17 GMT]]></title><description><![CDATA[<p>bastel ein Sleep(1) in die while-schleife rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310922</guid><dc:creator><![CDATA[!logged]]></dc:creator><pubDate>Thu, 21 Jun 2007 17:39:17 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Thu, 21 Jun 2007 18:20:02 GMT]]></title><description><![CDATA[<p>BetterPerformance schrieb:</p>
<blockquote>
<p>Ein yield ändert zwar nix an der Prozessorauslastung, allerdings<br />
haben andere Prozesse &quot;Vorrang&quot;.</p>
</blockquote>
<p>Ein &quot;Yield()&quot; ändert in 32-Bit-Code genau nichts:</p>
<p>winbase.h schrieb:</p>
<blockquote>
<pre><code class="language-cpp">/*
 * Compatibility macros
 */
...
#define Yield()
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1310954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310954</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Thu, 21 Jun 2007 18:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Thu, 21 Jun 2007 19:25:02 GMT]]></title><description><![CDATA[<p>ok brauch ich ja auch net. Sleep() funktioniert wunderbar !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310989</guid><dc:creator><![CDATA[Bit2_Gosu]]></dc:creator><pubDate>Thu, 21 Jun 2007 19:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Fri, 22 Jun 2007 11:17:16 GMT]]></title><description><![CDATA[<p>hmm ... vllt eher mal deinen Code auch umstellen?</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#pragma comment(lib, &quot;User32.lib&quot;)

void key_down(HWND hWnd)
{
	if (hWnd == NULL || IsWindow(hWnd) == FALSE)
		return;

	SetActiveWindow(hWnd);
	SendMessage(hWnd, WM_KEYDOWN, VK_OEM_4, 0);
	SendMessage(hWnd, WM_KEYDOWN, VK_OEM_6, 0);
}

void key_up(HWND hWnd)
{
	if (hWnd == NULL || IsWindow(hWnd) == FALSE)
		return;

    SetActiveWindow(hWnd);
    SendMessage(hWnd, WM_KEYUP, VK_OEM_4, 0);
    SendMessage(hWnd, WM_KEYUP, VK_OEM_6, 0);
}

void close(HWND hWnd)
{
    if (hWnd == NULL || IsWindow(hWnd) == FALSE)
		return;

	key_up();
}

int main()
{
	HWND hWndWarcraft3 = FindWindow(NULL, TEXT(&quot;Warcraft III&quot;));
    if (hWndWarcraft3 == NULL || IsWindow(hWndWarcraft3) == FALSE)
	{
		MessageBox(NULL, TEXT(&quot;Bitte starten Sie \&quot;Warcraft III\&quot;!&quot;), TEXT(&quot;Fehler&quot;), MB_OK | MB_ICONERROR);
		return;
    }

	bool stop = false;    
	while (!stop)
	{
		if (GetAsyncKeyState(&quot;a&quot;))
			stop = true;
		if (GetAsyncKeyState(VK_HOME))
			key_down(hWndWarcraft3);
		if (GetAsyncKeyState(VK_END))
			key_up(hWndWarcraft3);
		if (GetAsyncKeyState(VK_ESCAPE))
			close(hWndWarcraft3);    

		Sleep(100);
	}
}
</code></pre>
<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/1311046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311046</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 22 Jun 2007 11:17:16 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Fri, 22 Jun 2007 09:08:54 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1311260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311260</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Fri, 22 Jun 2007 09:08:54 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Fri, 22 Jun 2007 11:39:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">(...)
// if (GetAsyncKeyState(&quot;a&quot;))  // &quot;a&quot; -&gt; 0x61 -&gt; VK_NUMPAD1
 if (GetAsyncKeyState(0x41)) // 0x41 -&gt; VK_A
(...)
</code></pre>
<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/1311384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311384</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 22 Jun 2007 11:39:39 GMT</pubDate></item><item><title><![CDATA[Reply to katastrophale Performance on Fri, 22 Jun 2007 21:39:33 GMT]]></title><description><![CDATA[<p>merker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">(...)
// if (GetAsyncKeyState(&quot;a&quot;))  // &quot;a&quot; -&gt; 0x61 -&gt; VK_NUMPAD1
 if (GetAsyncKeyState(0x41)) // 0x41 -&gt; VK_A
(...)
</code></pre>
<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>
</blockquote>
<pre><code class="language-cpp">(...)
// if (GetAsyncKeyState(&quot;a&quot;))  // &quot;a&quot; -&gt; 0x61 -&gt; VK_NUMPAD1
// if (GetAsyncKeyState(0x41)) // 0x41 -&gt; VK_A
 if (GetAsyncKeyState('A'))
(...)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1311834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311834</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 22 Jun 2007 21:39:33 GMT</pubDate></item></channel></rss>