以下是引用片段: ATOM GlobalFindAtom(LPCTSTR lpString); ATOM GlobalAddAtom(LPCTSTR lpString); |
以下是引用片段: BOOL RegisterHotKey(HWND hWnd, // 接收热键响应的窗口句柄 int id, // 热键的标识 UINT fsModifiers, // 控制键标志 UINT vk // 虚拟键值 ); |
以下是引用片段: // 获取当前窗口句柄 HWND handle = GetSafeHwnd(); // 寻找HotKey对应的原子是否存在于原子列表 if(GlobalFindAtom("Hotkey") == 0) { // 假如没有存在于原子列表,则创建一个原子 id = GlobalAddAtom("Hotkey"); //注册全局热键Ctrl + Alt + R RegisterHotKey(handle, id, CONTROL + ALT, R); } else // 假如HotKey已经存在于原子列表,则终止程序运行 PostQuitMessage(0); |
以下是引用片段: DWord RegisterServiceProcess(DWORD dwProcessId,DWORD dwType); 其第一个参数指定了将要注册为服务进程的进程标识,参数dwType指定是去注册一个服务进程(为1时)还是去卸载一个服务进程(为0时)。其具体服务注册过程如下: typedef DWORD (WINAPI *RSP)(DWORD dwProcessId,DWORD dwType); // 获取Kernel32.DLL模块句柄 HMODULE m_hKernel = ::GetModuleHandle("Kernel32.DLL"); // 得到RegisterServiceProcess()函数入口地址 RSP m_rsp = (RSP)::GetProcAddress(m_hKernel, "RegisterServiceProcess"); // 注册当前进程为服务进程 m_rsp(::GetCurrentProcessId(),1); |
以下是引用片段: void CServiceDlg::OnHotKey(WPARAM wParam, LPARAM lParam) { // 判定是否是本服务程序设置的系统热键 if (wParam == id) { …… // 在此发送WM_PAINT消息,在OnPain()中通过 // ShowWindow(SW_SHOW)将界面设置为可视 PostMessage(WM_PAINT, 0, 0); } } |
新闻热点
疑难解答