Change wallpaper programmatically using c++ and windows api

后端 未结 3 1088
灰色年华
灰色年华 2021-02-03 13:40

I\'ve been trying to write an application, using Qt and mingw32, to download images and set them as the background Wallpaper. I have read several articles online about how to do

3条回答
  •  抹茶落季
    2021-02-03 14:18

    You cn use SetTimer to trigger a change.

    #define STRICT 1 
    #include 
    #include 
    
    VOID CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime) 
    {
    
      LPWSTR wallpaper_file = L"C:\\Wallpapers\\wallpaper.png";
      int return_value = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, wallpaper_file, SPIF_UPDATEINIFILE);
    
    
      cout << "Programmatically change the desktop wallpaper periodically: " << dwTime << '\n';
      cout.flush();
    }
    
    int main(int argc, char *argv[], char *envp[]) 
    {
        int Counter=0;
        MSG Msg;
    
        UINT TimerId = SetTimer(NULL, 0, 2000, &TimerProc); //2000 milliseconds
    
        cout << "TimerId: " << TimerId << '\n';
       if (!TimerId)
        return 16;
    
       while (GetMessage(&Msg, NULL, 0, 0)) 
       {
            ++Counter;
            if (Msg.message == WM_TIMER)
            cout << "Counter: " << Counter << "; timer message\n";
            else
            cout << "Counter: " << Counter << "; message: " << Msg.message << '\n';
            DispatchMessage(&Msg);
        }
    
       KillTimer(NULL, TimerId);
    return 0;
    }
    

提交回复
热议问题