如何禁用C中的关闭按钮?

时间:2012-08-17 08:06:13

标签: c windows console-application exe application-close

有没有人知道如何使用从C程序创建的.exe可执行文件禁用Windows控制台窗口上的关闭按钮?

2 个答案:

答案 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消息。