#include "stdafx.h"
int _cdecl _tmain (int argc, TCHAR *argv[])
{
if (::RegisterHotKey(
NULL,
1,
MOD_WIN| MOD_CONTROL | MOD_NOREPEAT,
VK_F1)) //0x42 is 'b'
{
::_tprintf(_T("Hotkey registered, using MOD_NOREPEAT flag\n"));
}
else
{
DWORD errorMessageID = ::GetLastError();
LPTSTR messageBuffer = NULL;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&messageBuffer, 0, NULL);
::_tprintf(_T("Error: %s\n"), messageBuffer);
::LocalFree(messageBuffer);
}
MSG msg = {0};
while (::GetMessage(&msg, NULL, 0, 0) != 0)
{
if (msg.message == WM_HOTKEY)
{
::_tprintf(_T("WM_HOTKEY received\n"));
}
}
return 0;
}
I2luY2x1ZGUgInN0ZGFmeC5oIgoKaW50IF9jZGVjbCBfdG1haW4gKGludCBhcmdjLCBUQ0hBUiAqYXJndltdKQp7CiAgICBpZiAoOjpSZWdpc3RlckhvdEtleSgKICAgICAgICBOVUxMLAogICAgICAgIDEsCiAgICAgICAgTU9EX1dJTnwgTU9EX0NPTlRST0wgfCBNT0RfTk9SRVBFQVQsCiAgICAgICAgVktfRjEpKSAgLy8weDQyIGlzICdiJwogICAgewogICAgICAgIDo6X3RwcmludGYoX1QoIkhvdGtleSByZWdpc3RlcmVkLCB1c2luZyBNT0RfTk9SRVBFQVQgZmxhZ1xuIikpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIERXT1JEIGVycm9yTWVzc2FnZUlEID0gOjpHZXRMYXN0RXJyb3IoKTsKCiAgICAgICAgTFBUU1RSIG1lc3NhZ2VCdWZmZXIgPSBOVUxMOwogICAgICAgIDo6Rm9ybWF0TWVzc2FnZShGT1JNQVRfTUVTU0FHRV9BTExPQ0FURV9CVUZGRVIgfCBGT1JNQVRfTUVTU0FHRV9GUk9NX1NZU1RFTSB8IEZPUk1BVF9NRVNTQUdFX0lHTk9SRV9JTlNFUlRTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZXJyb3JNZXNzYWdlSUQsIE1BS0VMQU5HSUQoTEFOR19ORVVUUkFMLCBTVUJMQU5HX0RFRkFVTFQpLCAoTFBUU1RSKSZtZXNzYWdlQnVmZmVyLCAwLCBOVUxMKTsKCgogICAgICAgIDo6X3RwcmludGYoX1QoIkVycm9yOiAlc1xuIiksIG1lc3NhZ2VCdWZmZXIpOwoKICAgICAgICA6OkxvY2FsRnJlZShtZXNzYWdlQnVmZmVyKTsKICAgIH0KIAogICAgTVNHIG1zZyA9IHswfTsKCiAgICB3aGlsZSAoOjpHZXRNZXNzYWdlKCZtc2csIE5VTEwsIDAsIDApICE9IDApCiAgICB7CiAgICAgICAgaWYgKG1zZy5tZXNzYWdlID09IFdNX0hPVEtFWSkKICAgICAgICB7CiAgICAgICAgICAgIDo6X3RwcmludGYoX1QoIldNX0hPVEtFWSByZWNlaXZlZFxuIikpOyAgICAgICAgICAgIAogICAgICAgIH0KICAgIH0gCiAKICAgIHJldHVybiAwOwp9Cgo=