-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
For some versions of windows (incorrectly installed or non-purchased versions) it seems like the function get_wallpaper_window()
does not return a correct HWND to the windows wallpaper but instead returns 0.
https://github.com/darclander/starBackground/blob/main/src/ui.cpp
HWND get_wallpaper_window() {
// Fetch the Progman window
HWND progman = FindWindow("ProgMan", NULL);
// Send 0x052C to Progman. This message directs Progman to spawn a
// WorkerW behind the desktop icons. If it is already there, nothing
// happens.
SendMessageTimeout(progman, 0x052C, 0, 0, SMTO_NORMAL, 1000, nullptr);
// We enumerate all Windows, until we find one, that has the SHELLDLL_DefView
// as a child.
// If we found that window, we take its next sibling and assign it to workerw.
HWND wallpaper_hwnd = nullptr;
EnumWindows(EnumWindowsProc, (LPARAM)&wallpaper_hwnd);
// Return the handle you're looking for.
return wallpaper_hwnd;
}
Any solutions for this would be greatly appreciated.
- Find the issue.
- Fix it.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels