有没有人知道如何使用从C程序创建的.exe
可执行文件禁用Windows控制台窗口上的关闭按钮?
答案 0 :(得分:5)
来自here:
#define _WIN32_WINNT 0x0500
#include <stdio.h>
#include <windows.h>
int main(int argc, _TCHAR* argv[]){
HWND h;
HMENU sm;
int i, j, c;
LPTSTR buf;
// get the handle to the console
h = GetConsoleWindow();
// get handle to the System Menu
sm = GetSystemMenu(h, 0);
// how many items are there?
c = GetMenuItemCount(sm);
j = -1;
buf = (TCHAR*) malloc (256 *sizeof(TCHAR));
for (i=0; i<c; i++) {
// find the one we want
GetMenuString(sm, i, buf, 255, MF_BYPOSITION);
if (!strcmp(buf, "&Close")) {
j = i;
break;
}
}
// if found, remove that menu item
if (j >= 0)
RemoveMenu(sm, j, MF_BYPOSITION);
return 0;
}
答案 1 :(得分:0)
如果要在正在运行的程序中禁用按钮,可以使用方法执行此操作。
原则是找到窗口,然后找到窗口内的按钮,然后向按钮发送WM_DISABLE消息。