我写了一个程序,在游戏中呈现覆盖,显示一些额外的信息。 我可以通过使用GetKeyState检测键盘和一些鼠标按键,但是没有虚拟键代码用于上下滚动,我也想使用它。
我知道滚动处理更像一个事件的方式,而不是按键,但这并没有什么帮助。 那么有没有解决我的问题?
我想到的事情:
通过一些函数检测滚动事件?
以某种方式获得Windows消息发送到我的程序中的游戏(这就是所谓的Hooking IIRC)
我正在使用Visual Studio 2013 Express [C ++]
使用stdout和stdin打开窗口
什么是使用用户提供的密码encryption和解密string的简单方法,在本机Win32和.NET中都可以使用?
如何在Windows上启动守护进程从python?
基于CDialog的MFC应用程序只能在主监视器中启动
如何使用ffmpeg,这样就不需要在应用程序文件夹中包含它的dll了?
Windows上的Ruby:无法安装MysqL2 gem – 无法构buildgem本机扩展
记事本字符解码
如何在Windows 8.1手机上运行cordova应用程序?
无法在本地安装驱动器 – 通过VPN的Azure文件存储
我如何使用线程本地存储(TLS)?
检查SetwindowsHookEx:特别是http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990(v=vs.85).aspx和WH_MOUSE。
LRESULT CALLBACK mouseProc(int nCode,WParaM wParam,LParaM lParam) { using namespace MouseLog; MsllHOOKSTRUCT * pMouseStruct = (MsllHOOKSTRUCT *)lParam; if (pMouseStruct != NULL) { if (wParam == WM_MOUSEWHEEL) { if (HIWORD(pMouseStruct->mouseData) == 120) MScrollUp = 1; else MScrollDown = 1; } if (wParam == WM_MBUTTONDOWN) MScrollBtn = 1; //printf("Mouse position X = %d Mouse Position Y = %dn",pMouseStruct->pt.x,pMouseStruct->pt.y); } return CallNextHookEx(hMouseHook,nCode,wParam,lParam); } DWORD WINAPI MouseLogger(LPVOID lpParm) { HINSTANCE hInstance = GetmoduleeHandle(NULL); hMouseHook = SetwindowsHookEx(WH_MOUSE_LL,mouseProc,hInstance,NULL); MSG message; while (GetMessage(&message,NULL,0)) { TranslateMessage(&message); dispatchMessage(&message); } UnhookWindowsHookEx(hMouseHook); return 0; }
为了启动MouseLogger,使用CreateThread()。
我明白,没有鼠标滚动的keystate,但其他像WM_MOUSEWHEEL别的东西
如果这回答你的问题,你可能想看看这个
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645617(v=vs.85).aspx
否则,如果这不帮助你,我会很乐意帮助你,如果这剂量的帮助
您可以使用旧版游戏API DirectInput 。 我知道当你使用disCL_BACKGROUND标志的时候窗口在后台的时候肯定会有效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。