<?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[IActiveDesktop funktioniert nicht [Win2k]]]></title><description><![CDATA[<p>Ich wollte mir einen kleinen Wallpapermanager schreiben, dafür will ich jetzt natürlich auch ein &quot;Als Wallpaper verwenden&quot; einbauen -&gt; dafür habe ich mich nun mit COM auseinandergesetzt und somit auch mit IActiveDesktop.</p>
<p>Als Test habe ich folgendes Kurzprogramm geschrieben, dass alle JPEG-Bilder eines Ordners für 3 Sekunden als Wallpaper verwendet. Soweit so gut, es gibt keine Fehler die das Programm verursacht. Doch mein Hintergrund wird nicht geändert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#define UNICODE			// Unicode intern verwenden
#define _UNICODE		// Unicode extern verwenden7

#include &lt;tchar.h&gt;		// Benötigt für Unicode-Konvertierung
#include &lt;windows.h&gt;	// Benötigt für allgemeine Windowsfunktionen

#include &lt;wininet.h&gt;	// Wird für die Shell-API benötigt
#include &lt;shlobj.h&gt;		// Shell-API wird für aktive Desktopelemente benötigt

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, PSTR szCmdLine, int nCmdShow)
{
	bool error = false;

	// COM initialisieren
	CoInitialize(0);

	// Active Desktop Handle einholen
	IActiveDesktop* Desktop;
	if(S_OK != CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&amp;Desktop))
	{
		MessageBox(0,TEXT(&quot;Sorry, konnte kein Handle auf den Active Desktop einholen.&quot;),TEXT(&quot;Fehler&quot;),MB_OK);
		error = true;
	}
	else
	{
		// Erste Datei im Verzeichnis finden
		WIN32_FIND_DATAW wfd;
		HANDLE Files = FindFirstFile(TEXT(&quot;*.jpg&quot;),&amp;wfd);

		// Wenn eine Datei gefunden wurde...
		if(Files != INVALID_HANDLE_VALUE)
		{
			do
			{
				// ...prüfen ob sie kein Ordner ist
				if(wfd.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)
				{
					// Ist dies der Fall wird sie als Desktophintergrund bestimmt
					if(SUCCEEDED(Desktop-&gt;SetWallpaper(wfd.cFileName,0)))
					{
						TCHAR WallpaperName [50];
						Desktop-&gt;GetWallpaper(WallpaperName,50,0);
						MessageBox(0,WallpaperName,TEXT(&quot;Wayne&quot;),MB_OK);
						// 3 Sekunden warten...
						Sleep(3000);
					}
					else
					{
						MessageBox(0,TEXT(&quot;Sorry, konnte eine Datei nicht als Hintergrund verwenden.&quot;),TEXT(&quot;Fehler&quot;),MB_OK);
					}
				}
			}
			// ...und weitere Dateien suchen
			while(FindNextFile(Files,&amp;wfd));
		}
		else
		{
			MessageBox(0,TEXT(&quot;Sorry, konnte keine Datei in diesem Verzeichnis finden.&quot;),TEXT(&quot;Fehler&quot;),MB_OK);
			error = true;
		}

		// Dateisuche Handle freigeben
		FindClose(Files);
	}

	if(!error)
	{
		MessageBox(0,TEXT(&quot;Alle Dateien wurden angezeigt.&quot;),TEXT(&quot;Fertig&quot;),MB_OK);

		// Active Desktop Handle freigeben
		Desktop-&gt;Release();
	}

	CoUninitialize();

	// Programm beenden
	return(0);
}
</code></pre>
<p>Programm verwendet Unicode und Shell-API (COM).</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/65718/iactivedesktop-funktioniert-nicht-win2k</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 16:52:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/65718.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Feb 2004 16:22:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to IActiveDesktop funktioniert nicht [Win2k] on Sat, 21 Feb 2004 16:22:01 GMT]]></title><description><![CDATA[<p>Ich wollte mir einen kleinen Wallpapermanager schreiben, dafür will ich jetzt natürlich auch ein &quot;Als Wallpaper verwenden&quot; einbauen -&gt; dafür habe ich mich nun mit COM auseinandergesetzt und somit auch mit IActiveDesktop.</p>
<p>Als Test habe ich folgendes Kurzprogramm geschrieben, dass alle JPEG-Bilder eines Ordners für 3 Sekunden als Wallpaper verwendet. Soweit so gut, es gibt keine Fehler die das Programm verursacht. Doch mein Hintergrund wird nicht geändert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#define UNICODE			// Unicode intern verwenden
#define _UNICODE		// Unicode extern verwenden7

#include &lt;tchar.h&gt;		// Benötigt für Unicode-Konvertierung
#include &lt;windows.h&gt;	// Benötigt für allgemeine Windowsfunktionen

#include &lt;wininet.h&gt;	// Wird für die Shell-API benötigt
#include &lt;shlobj.h&gt;		// Shell-API wird für aktive Desktopelemente benötigt

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, PSTR szCmdLine, int nCmdShow)
{
	bool error = false;

	// COM initialisieren
	CoInitialize(0);

	// Active Desktop Handle einholen
	IActiveDesktop* Desktop;
	if(S_OK != CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&amp;Desktop))
	{
		MessageBox(0,TEXT(&quot;Sorry, konnte kein Handle auf den Active Desktop einholen.&quot;),TEXT(&quot;Fehler&quot;),MB_OK);
		error = true;
	}
	else
	{
		// Erste Datei im Verzeichnis finden
		WIN32_FIND_DATAW wfd;
		HANDLE Files = FindFirstFile(TEXT(&quot;*.jpg&quot;),&amp;wfd);

		// Wenn eine Datei gefunden wurde...
		if(Files != INVALID_HANDLE_VALUE)
		{
			do
			{
				// ...prüfen ob sie kein Ordner ist
				if(wfd.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)
				{
					// Ist dies der Fall wird sie als Desktophintergrund bestimmt
					if(SUCCEEDED(Desktop-&gt;SetWallpaper(wfd.cFileName,0)))
					{
						TCHAR WallpaperName [50];
						Desktop-&gt;GetWallpaper(WallpaperName,50,0);
						MessageBox(0,WallpaperName,TEXT(&quot;Wayne&quot;),MB_OK);
						// 3 Sekunden warten...
						Sleep(3000);
					}
					else
					{
						MessageBox(0,TEXT(&quot;Sorry, konnte eine Datei nicht als Hintergrund verwenden.&quot;),TEXT(&quot;Fehler&quot;),MB_OK);
					}
				}
			}
			// ...und weitere Dateien suchen
			while(FindNextFile(Files,&amp;wfd));
		}
		else
		{
			MessageBox(0,TEXT(&quot;Sorry, konnte keine Datei in diesem Verzeichnis finden.&quot;),TEXT(&quot;Fehler&quot;),MB_OK);
			error = true;
		}

		// Dateisuche Handle freigeben
		FindClose(Files);
	}

	if(!error)
	{
		MessageBox(0,TEXT(&quot;Alle Dateien wurden angezeigt.&quot;),TEXT(&quot;Fertig&quot;),MB_OK);

		// Active Desktop Handle freigeben
		Desktop-&gt;Release();
	}

	CoUninitialize();

	// Programm beenden
	return(0);
}
</code></pre>
<p>Programm verwendet Unicode und Shell-API (COM).</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/464717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/464717</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 21 Feb 2004 16:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to IActiveDesktop funktioniert nicht [Win2k] on Sat, 21 Feb 2004 18:40:02 GMT]]></title><description><![CDATA[<p>Hast Du mal einen Blick auf <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iactivedesktop/ApplyChanges.asp?frame=true" rel="nofollow">IActiveDesktop::ApplyChanges</a> geworfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/464830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/464830</guid><dc:creator><![CDATA[-King-]]></dc:creator><pubDate>Sat, 21 Feb 2004 18:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to IActiveDesktop funktioniert nicht [Win2k] on Sat, 21 Feb 2004 19:37:14 GMT]]></title><description><![CDATA[<p>*plonk*</p>
<p>Ich werd das gleich mal einbauen und testen <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>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/464885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/464885</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 21 Feb 2004 19:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to IActiveDesktop funktioniert nicht [Win2k] on Sat, 21 Feb 2004 22:31:22 GMT]]></title><description><![CDATA[<p>Jetzt sehe ich zwar, dass er den Desktop aktualisiert (stelle ich vorher selbst ein Wallpaper über Desktop -&gt; Eigenschaften ein) ändert er es auf einen schwarzen Hintergrund. Doch wird das Bild nicht angezeigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Gehe ich nach der Ausführung in Desktop -&gt; Eigenschaften dann sehe ich zwar das neue Bild angezeigt und kann es dort nach einer Veränderung (zB Nebeneinander und dann wieder Strecken wählen) auch am Desktop betrachten, doch ist das nicht Sinn und Zweck.</p>
<p>Wie kann ich es einrichten, dass das Bild sofort zu sehen ist?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/464953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/464953</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 21 Feb 2004 22:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to IActiveDesktop funktioniert nicht [Win2k] on Sun, 22 Feb 2004 08:26:37 GMT]]></title><description><![CDATA[<p>Vielleicht findest du ja hier was:<br />
- <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=52515" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=52515</a><br />
- <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=15350" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=15350</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/465022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/465022</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 22 Feb 2004 08:26:37 GMT</pubDate></item></channel></rss>