[C++]回调系统关机对话框
2013-03-03 15:30
162 查看
只是想图个方便,或者好看,做一个跟“开始”菜单上关机一样的按扭,打开系统的关机对话框。
于是从网上找了找现成的代码,然后自己改了改,有了这个。
为了不显示出窗体,我把控制台的窗口也给隐藏了。
VS2010建立的入口点不是main(),因为必须为这个我才改的。原来的是_tmain()吧,有点记不清了。
回调函数则始终我是一知半解。
都做完后基本上具有了功能。
但是奇怪的让我想不明白的问题是,有时候会失效。
再打开一次,却又管用。
最后再附加另一段隐藏控制台的代码吧,这个在本程序中没起作用。也许在别的地方可以管用。
于是从网上找了找现成的代码,然后自己改了改,有了这个。
为了不显示出窗体,我把控制台的窗口也给隐藏了。
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); }
都做完后基本上具有了功能。
但是奇怪的让我想不明白的问题是,有时候会失效。
再打开一次,却又管用。
最后再附加另一段隐藏控制台的代码吧,这个在本程序中没起作用。也许在别的地方可以管用。
// 隐藏控制台窗口2 HWND hwnd; if(hwnd=::FindWindow((LPCWSTR)"ConsoleWindowClass",NULL)) //找到控制台句柄 { ::ShowWindow(hwnd,SW_HIDE); }
相关文章推荐
- C++对话框系统托盘实现
- C++对话框系统托盘实现
- C++ 实现系统注销,重启,关机的方法
- C++ 实现系统注销,重启,关机的方法
- c++调用系统关机命令 c++调用暂停命令
- XP系统中调用系统关机对话框
- C++控制windows系统关机
- 使用脚本调用系统的关机对话框
- win10关机之后自动重启(系统更新之后出现这个问题)
- 浅析android系统设计中的回调思想
- XP系统中关机、注销、重启功能
- Linux 基础教程 41-系统关机和重启
- C++中回调(CallBack)的使用方法
- C/C++控制动态显示当前系统时间
- (转)C++开发BHO(以HelloWorld对话框为例子)
- C++回调JAVA方法
- 【转】Android系统原理与源码分析:利用Java反射技术阻止通过按钮关闭对话框
- C/C++获取当前系统时间
- android 系统提示对话框(AlertDialog)的使用