以下是引用片段: 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); } } |
新聞熱點
疑難解答