4

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

4

2 回答 2

4

这里开始:

#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;
}
于 2012-08-17T08:13:11.163 回答
0

如果你想禁用正在运行的程序中的按钮,有一些方法可以做到这一点。

原理是找到窗口,然后找到窗口里面的按钮,然后给按钮发送WM_DISABLE消息。

于 2012-08-17T08:12:20.510 回答