Извините за задержку, у меня не установлен VS на этом компьютере, поэтому найти код немного сложно.
Используйте это, чтобы подключить ваш код к системе.
HHOOK oldShellHook = SetWindowsHookEx(WH_SHELL, BCK_WndShellProc, hDll, NULL);
if (!info->oldShellHook) {
MessageBox(m_hwnd, L"Failed to load global hook.", strTitle, MB_OK | MB_ICONERROR);
return;
}
А это твой крючок. В зависимости от того, что вы делаете, используйте nMsg, чтобы выяснить, когда вы хотите применить свою собственную логику.
LRESULT CALLBACK BCK_WndShellProc(int nMsg, WPARAM wParam, LPARAM lParam) {
...
}
Прочтите документы MSDN для SetWindowsHookEx () , чтобы убедиться, что вы возвращаете ожидаемые значения, в противном случае вы можете заблокировать всю систему.
Я использую код, подобный этому, в моих Breadcrumb Killer и Spasm (Показать все программы в меню Пуск), и кажется, что он работает нормально.