locked
How can I set a desktop wallpaper if the explorer.exe shell is intentionally never started? RRS feed

  • Question

  • The scenario:

    I want to run Windows 7 in kiosk mode using only touch input without keyboard and mouse.

    To do this, I replace "explorer.exe" in HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell with the path to my app. This does all I need since there is no keyboard and mouse attached.

    I also set a wallpaper that tells the user to contact our support.

    So if my app cannot start or crashes for any reason, the user cannot tamper the system but he gets a helpful message.

    On Windows XP, all works well - my app starts in full screen mode an thus hides the wallpaper. If it crashes, then the wallpaper reappears.

    On Windows 7, however, no wallpaper is displayed. The screen remains black even though a valid path to a BMP file is set in the registry. It seems that on Windows 7, explorer.exe is in charge of displaying the wallpaper. Since it is never started, no wallpaper is displayed.

    How can I manually set a wallpaper using builtin tools if explorer.exe is never started?

    Question 2)

    If explorer.exe is not set in the Shell registry key, then it will not setup the desktop and task bar if it is launched later using Task Manager. Explorer simply starts a file browser. Is there a way to tell it to setup the desktop?

    Saturday, July 28, 2012 4:43 PM

All replies

  • Hi,

    I notice the question is more related to development. I suggest posting in desktop development forum.

    http://social.msdn.microsoft.com/Forums/en-US/category/windowsdesktopdev


    Niki Han

    TechNet Community Support

    Monday, July 30, 2012 7:20 AM
  • Hi Niki,

    actually, I don't think so.

    I found a way to set the background using the Win32 API call

    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (LPVOID)(imgpath.c_str()), SPIF_SENDCHANGE);

    So that would be an answer from a developers view.

    In my article above, I am asking for a builtin - albeit undocumented - method to accomplish this. That way, it may be possible to specify an entry in the HKLM\Software\Microsoft\Windows\CurrentVersion\Run key to set the wallpaper without the need to modify the app to call SystemParametersInfo().

    Frank

    Tuesday, July 31, 2012 6:39 AM
  • Then answer this:

    How can I administratively set a wallpaper in Windows 7 using builtin tools if explorer.exe is never started?


    GreggD

    Saturday, December 26, 2015 9:07 PM