能力值:
( LV1,RANK:0 )
|
-
-
2 楼
DWORD WINAPI SimulateMouseClick(LPVOID lpParam)
{
INPUT input = {};
input.type = INPUT_MOUSE;
input.mi.dwExtraInfo = 0x521;
input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP;
SendInput(1, &input, sizeof(INPUT));
return 0;
}
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
MOUSEHOOKSTRUCT* p = reinterpret_cast<MOUSEHOOKSTRUCT*>(lParam);
if (p->dwExtraInfo == 0x521)
{
return CallNextHookEx(g_hook, nCode, wParam, lParam);
}
if (wParam == WM_RBUTTONDOWN)
{
return 1;
}
if (wParam == WM_RBUTTONUP)
{
HANDLE hThread = CreateThread(NULL, 0, SimulateMouseClick, NULL, 0, NULL);
CloseHandle(hThread);
return 1;
}
}
return CallNextHookEx(g_hook, nCode, wParam, lParam);
} 可能是因为模拟鼠标操作的代码执行时间过长,导致操作的反应较慢。当钩子函数拦截到右键抬起事件时,会调用SendInput函数来模拟鼠标的右键单击操作,而SendInput函数会将模拟的输入消息发送给系统,由系统来处理这些消息。由于钩子函数是在系统消息处理流程中被调用的,如果钩子函数执行时间过长,则会延迟系统对输入消息的处理,从而导致右键菜单弹出有延迟。
为了避免这种情况,可以尝试在钩子函数中减少执行时间,例如将模拟鼠标操作的代码放到一个单独的线程中执行,或者使用更快速的模拟鼠标操作的方法。另外,也可以尝试减少模拟鼠标操作的次数,只在必要的情况下模拟右键单击操作,从而减少延迟的发生。
|
能力值:
( LV9,RANK:195 )
|
-
-
3 楼
万神fake
DWORD WINAPI SimulateMouseClick(LPVOID lpParam)
{
& ...
chatgpt疯狂水贴
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
论坛老会员啊 6
|
|
|