【发布时间】:2021-12-07 14:01:11
【问题描述】:
我在 Windows 上用 C 语言编写了一个笑话程序,它在后台启动并弹出愚蠢的窗口。这是一个有趣的项目,但它提出了一个问题/好奇心。
这是 C 代码:
#include <windows.h>
#include <unistd.h>
#include <stdbool.h>
//IMPORTANT!!! You should compile this program using the -mwindows specification on GCC.
int main(void){
while(true){
MessageBeep(MB_OK);
MessageBox(0 , "Blip" , NULL , MB_OK);
sleep(5);
MessageBeep(MB_OK);
MessageBox(0 , "Blop" , NULL , MB_OK);
sleep(5);
MessageBeep(MB_OK);
MessageBox(0 , "Blup" , NULL , MB_OK);
sleep(5);
}
return 0;
}
我使用 GCC 编译了这个,使用 -mwindows 选项使可执行文件在后台打开,而不是作为控制台可执行文件。这一切都很好,花花公子。但是,在这个 .exe 运行时打开任务管理器,我注意到程序在睡眠时会停留在后台,但它会在任务管理器中跳转到前台当弹出窗口打开时。有什么办法可以防止这种情况发生吗?有什么方法可以在打开弹出窗口时将 .exe 保留在后台?我认为这会使程序更有趣。
在同样的注意,奖金相关的问题上,有没有办法更改在任务管理器中显示的可执行文件的名称?这会让 .exe 更烦人。
【问题讨论】:
标签: c windows gcc taskmanager