use*_*675 4 c++ console wallpaper
我一直在研究一个应用程序来设置我在这里找到的另一个应用程序的桌面背景:http://www.optimumx.com/downloads.html#SetWallpaper.我们的想法是将背景设为墙纸每10分钟,所以它会启动命令"SetWallpaper.exe/d:S Wallpaper.jpg"的SetWallpaper.exe但是当我启动我的应用程序会创建那并不是一个控制台窗口t自动关闭,当我手动关闭它时,它会杀死exe.
#include <windows.h>
int main() {
int i = 1;
int j = 3;
// refresh = time until refresh in minutes
int refresh = 10;
// 1000 milliseconds = 1 second
int second = 1000;
int minute = 60;
int time = second * minute * refresh;
while (i < j) {
system("cmd /c start /b SetWallpaper.exe /D:S Wallpaper.jpg");
Sleep(time);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用MinGW Msys附带的'sleep.exe',但每个团队创建一个新进程,最终占用所有进程.
提前致谢!
您遇到的第一个问题是您已使用main方法将程序创建为控制台应用程序.相反,将其创建为Win32 Project带WinMain入口点的a.这将在不创建控制台窗口的情况下直接调用.
编辑:第二个问题由Ferruccio的回答解决,因为你从你的调用另一个控制台应用程序,这也将导致创建一个控制台窗口.
你正在努力解决这个问题.在程序中更改Windows壁纸非常简单:
#include <windows.h>
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID) "path/to/wallpaper.jpg", SPIF_UPDATEINIFILE);
Run Code Online (Sandbox Code Playgroud)
在任何情况下,如果你坚持启动外部程序来执行它.使用CreateProcess.通过将dwCreationFlags参数设置为,它可以在没有可见窗口的情况下启动控制台模式应用程序CREATE_NO_WINDOW.
| 归档时间: |
|
| 查看次数: |
5035 次 |
| 最近记录: |