33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <windows.h>
typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
PROCGETCONSOLEWINDOW GetConsoleWindow;
int main(int argc, char *argv[])
{
HMODULE hKernel32;
HWND hCmd;
hKernel32 = GetModuleHandle("kernel32");
GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
hCmd = GetConsoleWindow(); //获取到当前cmd窗口句柄
//这里为当前cmd窗口注册热键Ctrl+M
RegisterHotKey(hCmd,1,MOD_CONTROL,'M');
//请问在哪里相应cmd窗口的WM_HOTKEY消息呢???
printf("hello,world\n");
while(1);
return 0;
}
DWORD WINAPI ThreadProc(LPVOID lpParameter )
{
while(1)
{
//....当然还有scanf、getch等其它操作
printf("哈哈哈\n");
Sleep(1000);
}
return 1;
}
#include "stdafx.h"
DWORD WINAPI ThreadProc( __in LPVOID lpParameter )
{
//do something
return 1;
}
int _cdecl _tmain ( int argc, TCHAR *argv[])
{
if (RegisterHotKey( NULL, 1, MOD_ALT | MOD_NOREPEAT, 0x42)) //0x42 is 'b'
{ _tprintf(_T("Hotkey 'ALT+b' registered, using MOD_NOREPEAT flag\n"));
}
HANDLE handle=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,NULL,0,NULL);//创建线程
CloseHandle(handle);
MSG msg = {0}; //这里就一直在等了。。。。 //可是注册完热键后,我还要做其它工作呀,就是要边等边做其它事情
while (GetMessage(&msg, NULL, 0, 0))
{ if (msg.message == WM_HOTKEY)
{
_tprintf(_T("WM_HOTKEY received\n"));
}
}
return 0;
}
#include "stdafx.h"
int _cdecl _tmain (
int argc,
TCHAR *argv[])
{
if (RegisterHotKey(
NULL,
1,
MOD_ALT | MOD_NOREPEAT,
0x42)) //0x42 is 'b'
{
_tprintf(_T("Hotkey 'ALT+b' registered, using MOD_NOREPEAT flag\n"));
}
MSG msg = {0};
//这里就一直在等了。。。。
//可是注册完热键后,我还要做其它工作呀,就是要边等边做其它事情
while (GetMessage(&msg, NULL, 0, 0))
{
if (msg.message == WM_HOTKEY)
{
_tprintf(_T("WM_HOTKEY received\n"));
}
}
return 0;
}