<?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[desktop aktiv?]]></title><description><![CDATA[<p>Hi.<br />
Kann mir emand sagen wie ich rausfinden kann ob der Desktop aktiv ist?<br />
Ich denke ich kann das mit GetForegroundWindow() rausbekommen, aber den hwnd muss ich ja mit dem desk-hwnd vergleichen. Das muss man ja dann mit einer funktion und dem entsprechenden klassennamen abfragen können.</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/83088/desktop-aktiv</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 11:31:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/83088.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Aug 2004 16:01:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to desktop aktiv? on Tue, 17 Aug 2004 16:01:51 GMT]]></title><description><![CDATA[<p>Hi.<br />
Kann mir emand sagen wie ich rausfinden kann ob der Desktop aktiv ist?<br />
Ich denke ich kann das mit GetForegroundWindow() rausbekommen, aber den hwnd muss ich ja mit dem desk-hwnd vergleichen. Das muss man ja dann mit einer funktion und dem entsprechenden klassennamen abfragen können.</p>
<p>Danke im Vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/584794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584794</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Tue, 17 Aug 2004 16:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Tue, 17 Aug 2004 20:17:27 GMT]]></title><description><![CDATA[<p>Vielleicht hilft dir <a href="http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowFunctions/GetDesktopWindow.asp" rel="nofollow">GetDesktopWindow</a> weiter?! <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/584929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584929</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 17 Aug 2004 20:17:27 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Tue, 17 Aug 2004 20:52:33 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Vielleicht hilft dir <a href="http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowFunctions/GetDesktopWindow.asp" rel="nofollow">GetDesktopWindow</a> weiter?! <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>
<p>nein, das wird nicht gehen. dieses window ist noch 'hinter' dem explorer, man sieht es z.b. dann, wenn der explorer nicht die shell ist. die idee mit dem 'GetForegroundWindow()' hört sich da schon besser an.</p>
<p>edit: probier mal das...</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

int main()
{
	HWND h1 = FindWindow (&quot;progman&quot;, NULL);
	bool f = true;
	while (true)
	{
		if (GetForegroundWindow() == h1)
		{
			if (f)
			{
				printf (&quot;desk wnd is active now\n&quot;);
				f = false;
			}
		}
		else
		{
			if (!f)
			{
				printf (&quot;leaving desk wnd\n&quot;);
				f = true;
			}
		}
		Sleep (200);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/584931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/584931</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 17 Aug 2004 20:52:33 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Thu, 19 Aug 2004 10:21:48 GMT]]></title><description><![CDATA[<p>jo so klappts, danke.</p>
<p>GetForegroundWindow() war mir klar, aber ich musste es ja mit irgendwas vergleichen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="8)"
      alt="😎"
    /><br />
wusste nit dass die klasse progman heißt.<br />
thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586163</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Thu, 19 Aug 2004 10:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Thu, 19 Aug 2004 10:45:39 GMT]]></title><description><![CDATA[<p>aber da hab ich dann glei nochn problem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="8)"
      alt="😎"
    /><br />
Eigentlich wollte ich ja prüfen, ob mit rechter oder linker maustaste auf den desktop geklickt wurde. Also hab ich mir gedacht, die klicks sollte ich mit nem windowshook abfangen:</p>
<pre><code>.
.
.
    switch(nCode) {
        case HC_ACTION: {
            if(wparam == WM_RBUTTONDOWN) {
                MessageBox(NULL, &quot;RBUTTONDOWN&quot;, &quot;&quot;, MB_OK);
                if(GetForegroundWindow() == FW) {
                    MessageBox(NULL, &quot;Rdown on desk&quot;, &quot;&quot;, MB_OK);
                    break;
                }
            }
        }
    }
.
.
.
</code></pre>
<p>RBUTTONDOWN kommt die ganze zeit links und rechtsklick, also kann daran was nich stimmen ... und rdown on desk kommt nie ... aber das liegt wohl an was anderem^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586180</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Thu, 19 Aug 2004 10:45:39 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Thu, 19 Aug 2004 16:54:10 GMT]]></title><description><![CDATA[<p>kann mir denn niemand bitte sagen, wie ich im MouseHook der mit SetWindowsHookEx() erstellt wurde prüfen kann welche maustaste gedrückt wurde?</p>
<p>mfg jghj</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586587</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Thu, 19 Aug 2004 16:54:10 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Thu, 19 Aug 2004 17:19:25 GMT]]></title><description><![CDATA[<p>jghj schrieb:</p>
<blockquote>
<pre><code>if(wparam == WM_RBUTTONDOWN) {
</code></pre>
</blockquote>
<p>wie's genau geht kann ich dir jetzt auch nicht sagen aber das ist jedenfalls verkehrt. in wparam steckt nur eine id (irgend so'n zahlenwert) auf die MOUSEHOOKSTRUCT pointed 'lparam'.<br />
guckst du hier: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Hooks/HookReference/HookFunctions/MouseProc.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Hooks/HookReference/HookFunctions/MouseProc.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/586598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586598</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 19 Aug 2004 17:19:25 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Thu, 19 Aug 2004 18:16:31 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3162">@net</a>: ja genau eine id, irgendso ein Zahlenwert, der zufälligerweise der Maus Nachricht entspricht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MSDN schrieb:</p>
<blockquote>
<p><strong>wParam</strong>: Specifies the identifier of the mouse message.</p>
</blockquote>
<p>Stimmt also so</p>
<p>___________________</p>
<p>Hast du die MouseProc in einer Dll, sonst kommen nur Messages von Fenstern aus deinem Prozess an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586639</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Thu, 19 Aug 2004 18:16:31 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Thu, 19 Aug 2004 18:42:25 GMT]]></title><description><![CDATA[<p>D@niel $chumann schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3162">@net</a>: ja genau eine id, irgendso ein Zahlenwert, der zufälligerweise der Maus Nachricht entspricht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MSDN schrieb:</p>
<blockquote>
<p><strong>wParam</strong>: Specifies the identifier of the mouse message.</p>
</blockquote>
</blockquote>
<p>ach so ist das gemeint <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="💡"
    /><br />
na dann sorry für das verwirrende posting</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586671</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 19 Aug 2004 18:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Fri, 20 Aug 2004 10:23:03 GMT]]></title><description><![CDATA[<p>aber warum reagiert der dann auch auf linksklick? plan ich nich o_O</p>
]]></description><link>https://www.c-plusplus.net/forum/post/587074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587074</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Fri, 20 Aug 2004 10:23:03 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Fri, 20 Aug 2004 11:08:37 GMT]]></title><description><![CDATA[<p>probier mal dies:<br />
build als console-prog und dann auf den desktop klicken...</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; 
#include &lt;stdio.h&gt; 

int main() 
{ 
    HWND h1 = FindWindow (&quot;progman&quot;, NULL); 
    while (1) 
    { 
        if (GetForegroundWindow() == h1) 
        { 
			if (0x8001 &amp; GetAsyncKeyState (VK_LBUTTON))
				puts (&quot;links&quot;);
			if (0x8001 &amp; GetAsyncKeyState (VK_MBUTTON))
				puts (&quot;mitte&quot;);
			if (0x8001 &amp; GetAsyncKeyState (VK_RBUTTON))
				puts (&quot;rechts&quot;);
		}
		Sleep (100); 
    } 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/587123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587123</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 20 Aug 2004 11:08:37 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Fri, 20 Aug 2004 12:37:04 GMT]]></title><description><![CDATA[<p>geil, funzt danke! Kann ich mir den ganzen hookscheiß sparen. GetAsyncKeyState war eben eine funktion die man in dem Fall kennen sollte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="8)"
      alt="😎"
    /></p>
<p>Nur versteh ich nicht ganz was das mit dem 0x8001 auf sich hat. Wenn du das in ein oder 2 sätzen erklären könntest wärs nett. Wie man auf sowas kommt interressiert mich halt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="8)"
      alt="😎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/587188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587188</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Fri, 20 Aug 2004 12:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Sat, 21 Aug 2004 09:10:34 GMT]]></title><description><![CDATA[<blockquote>
<p>If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.</p>
</blockquote>
<p>Bei 0x8001 sind genau diese 2 Bits gesetzt - mit der logischen &amp;-Verknüpfung schaust du dann (wenn ich gerade keinen Denkfehler gemacht habe), ob eines dieser beiden Bits im Rückgabewert in GetAsyncKeyState gesetzt ist <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/587592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587592</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 21 Aug 2004 09:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Sat, 21 Aug 2004 10:40:53 GMT]]></title><description><![CDATA[<p>das hab ich mir schon gedacht, aber wie zur scheiße komm ich selbst auf sowas? -g-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/587639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587639</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Sat, 21 Aug 2004 10:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Sat, 21 Aug 2004 10:42:02 GMT]]></title><description><![CDATA[<p>... indem du ganz einfach die Doku genau liest und dann noch etwas C beherrscht um das entsprechend umzusetzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/587641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587641</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 21 Aug 2004 10:42:02 GMT</pubDate></item><item><title><![CDATA[Reply to desktop aktiv? on Sat, 21 Aug 2004 18:15:44 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>mit der logischen &amp;-Verknüpfung schaust du dann (wenn ich gerade keinen Denkfehler gemacht habe), ob eines dieser beiden Bits im Rückgabewert in GetAsyncKeyState gesetzt ist <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>
<p>oh, da hast du sogar einen fehler gefunden. eigentlich wollte ich prüfen, ob beide gesetzt sind, funzt also nur per zufall.<br />
so wollt' ichs haben:</p>
<pre><code>if ((0x8001 &amp; GetAsyncKeyState (VK_LBUTTON)) == 0x8001)
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/587942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587942</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sat, 21 Aug 2004 18:15:44 GMT</pubDate></item></channel></rss>