首先,对不起我的英文! 嗨伙计们,我想做点什么 当我按“x”然后“斧头” 这是代码-----------------
#include "stdafx.h"
using namespace std;
HHOOK hKBHook;
UINT TimerId;
UINT TimerId1;
VOID CALLBACK DelayX(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime) {
keybd_event(65, 0, WM_KEYDOWN, 0);
keybd_event(65, 0, WM_KEYUP, 0);
keybd_event(88, 0, WM_KEYDOWN, 0);
keybd_event(88, 0, WM_KEYUP, 0);
KillTimer(NULL, TimerId);
}
VOID CALLBACK XSPlay(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime) {
PlaySound(TEXT("tocks.wav"), NULL, SND_ASYNC);
KillTimer(NULL, TimerId1);
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (wParam == WM_KEYDOWN)
{
PKBDLLHOOKSTRUCT pKey = (PKBDLLHOOKSTRUCT)lParam;
cout << pKey->vkCode << " ";
switch (pKey->vkCode)
{
case 88:
{
PlaySound(TEXT("tocks.wav"), NULL, SND_ASYNC);
KillTimer(NULL, TimerId1);
TimerId1 = SetTimer(NULL, 0, 297, &XSPlay);
TimerId = SetTimer(NULL, 0, 290, &DelayX);
return 1;
}
case 19:
{
UnhookWindowsHookEx(hKBHook);
return 1;
}
}
}
CallNextHookEx(hKBHook, nCode, wParam, lParam);
return 0;
}
int _tmain(int argc, _TCHAR* argv[]) {
HMODULE hInstance = GetModuleHandle(NULL);
hKBHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, hInstance, NULL);
MSG Msg;
while (GetMessage(&Msg, NULL, 0, 0)) {DispatchMessage(&Msg);}
UnhookWindowsHookEx(hKBHook);
return 0;
}
问题是
按x - &gt;发送斧头 - &gt;也迷上了这个x - &gt;发送斧头----------循环
而我真的是诺布
也许许多其他代码需要改进。
给我你学习C ++的建议:)
谢谢你的阅读!