鼠标钩子破坏了所有Windows输入
mouse hook broke all windows input
我是c++编程新手,我正在尝试制作一个小报告工具,当鼠标和键盘在一段时间内没有被触摸时,它将检测到。
我一直在寻找一些示例鼠标钩子代码,发现这个
#define _WIN32_WINNT 0x0400
#pragma comment( lib, "user32.lib" )
#include <windows.h>
#include <stdio.h>
HHOOK hMouseHook;
__declspec(dllexport) LRESULT CALLBACK KeyboardEvent (int nCode, WPARAM wParam, LPARAM lParam)
{
MOUSEHOOKSTRUCT * pMouseStruct = (MOUSEHOOKSTRUCT *)lParam;
if (pMouseStruct != NULL)
printf("Mouse position X = %d Mouse Position Y = %dn", pMouseStruct->pt.x,pMouseStruct->pt.y);
return CallNextHookEx(hMouseHook,
nCode,wParam,lParam);
}
void MessageLoop()
{
MSG message;
while (GetMessage(&message,NULL,0,0)) {
TranslateMessage( &message );
DispatchMessage( &message );
}
}
DWORD WINAPI MyMouseLogger(LPVOID lpParm)
{
HINSTANCE hInstance = GetModuleHandle(NULL);
if (!hInstance) hInstance = LoadLibrary((LPCSTR) lpParm);
if (!hInstance) return 1;
hMouseHook = SetWindowsHookEx (
WH_MOUSE_LL,
(HOOKPROC) KeyboardEvent,
hInstance,
NULL
);
MessageLoop();
UnhookWindowsHookEx(hMouseHook);
return 0;
}
int main(int argc, char** argv)
{
HANDLE hThread;
DWORD dwThread;
hThread = CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)
MyMouseLogger, (LPVOID) argv[0], NULL, &dwThread);
if (hThread)
return WaitForSingleObject(hThread,INFINITE);
else return 1;
}
我编译并运行这个测试,它似乎做了我想要的。在那之后,我开始测试一些东西。编译在c++和g++为地狱它。删除了pMouseStruct并测试了"if(lParam)"。一切似乎都很正常,天晚了,所以我决定第二天再来。
当我今天启动windows时,我不能移动鼠标或用键盘输入任何东西。似乎输入窗口内(正常和安全模式)不再工作了。有什么办法解决这个问题吗?
使用Windows 7 64bit
到目前为止,我已经尝试了以下方法:-扭转了最近的超频调整。
-将代码返回到我玩它之前的方式,重新编译并运行。
——谷歌。
—系统盘的CHKDSK/f。
-系统恢复(不像raid)
-从朋友那里拷贝了user32.dll。
请原谅我的无知:-)
最后我重新安装了windows 7,很快就遇到了更多奇怪的问题。从那以后,我发现待机会破坏各种东西,于是就不再使用它了。现在我正在运行一个从未进入休眠状态的windows 7新安装。到现在还没有任何奇怪的问题:-)
相关文章:
- 无法在windows控制台中为C++程序提供必要的输入
- Windows.h 输入在函数之外不起作用
- 使用 Windows API c++ 的键盘输入
- 在Windows中将用户输入屏蔽为星号
- 如何在 Windows 10 上使用 InjectTouchInput() 和 PT_PEN 从数字化仪注入笔输入
- 如何使用C++在Windows中输出和输入UTF8或UTF16 Unicode文本?
- Windows 中应用程序的每秒输入/输出操作数
- 如何从Windows CMD运行可执行文件并将其传递给文件输入的参数参数和重定向
- Windows SetFocus,目标窗口不会捕获键盘输入
- 读取 USB 相机的输入编辑并将输出发送到 Windows 上的虚拟相机
- QTCreator G .EXE:致命错误:无输入文件(Windows)
- 如何监视Windows USB端口上的输入
- 如何测试 Windows 中的触摸输入是来自手指还是触笔?在 C/C++ 中
- Windows C - 需要想法 - 在同一应用/窗口中将鼠标输入和原始输入组合在一起
- 如何在控制台应用程序中使用GetMessage()使用Windows API识别C++中的键盘输入
- 如何在windows中的gcc中逐行读取命令输出,就像使用标准输入一样
- 现代Windows输入API/用户交互API
- Windows:如何让子进程在不关闭输入匿名管道的情况下读取它
- 如何为我的语言编写自己的Windows输入工具软件
- 鼠标钩子破坏了所有Windows输入