[C++]回调系统关机对话框

来源:互联网 发布:抠图软件app 编辑:程序博客网 时间:2024/06/06 05:58

只是想图个方便,或者好看,做一个跟“开始”菜单上关机一样的按扭,打开系统的关机对话框。

于是从网上找了找现成的代码,然后自己改了改,有了这个。

为了不显示出窗体,我把控制台的窗口也给隐藏了。

VS2010建立的入口点不是main(),因为必须为这个我才改的。原来的是_tmain()吧,有点记不清了。

回调函数则始终我是一知半解。

//隐藏控制台窗口1#pragma comment(linker, "/subsystem:\"windows\"   /entry:\"mainCRTStartup\"")//注意函数入口应为 main() 函数//特别说明:此方法仅仅适用于vs 2003以上版本,已经经过验证。//因为#pragma comment是vs特有的,而不是c++的标准//调用系统的关机对话框typedef int (CALLBACK *SHUTDOWNDLG) (int);   CString s;    HINSTANCE hInst = LoadLibrary(TEXT("shell32"));SHUTDOWNDLG SHShutDownDialog;    if(hInst != 0)    { SHShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst, (LPSTR)60); (*SHShutDownDialog)(0); FreeLibrary(hInst);    } 

都做完后基本上具有了功能。

但是奇怪的让我想不明白的问题是,有时候会失效。

再打开一次,却又管用。


最后再附加另一段隐藏控制台的代码吧,这个在本程序中没起作用。也许在别的地方可以管用。

// 隐藏控制台窗口2HWND hwnd;if(hwnd=::FindWindow((LPCWSTR)"ConsoleWindowClass",NULL)) //找到控制台句柄{::ShowWindow(hwnd,SW_HIDE); }


原创粉丝点击