You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制让隐藏鼠标指针的POS自助终端应用重新显示指针

解决POS自助终端应用显示鼠标指针的方法

以下是几个无需目标应用源码即可强制显示鼠标指针的可行方案:

1. 全局鼠标钩子强制恢复光标可见性

ShowCursor的可见性计数是线程级别的,目标应用大概率是多次调用ShowCursor(false)把计数压至负数。你可以通过全局鼠标钩子,在目标应用的线程上下文里重复调用ShowCursor(true)来抵消这个计数:

  • 编写DLL实现WH_MOUSE全局钩子,在钩子回调函数中,每次触发鼠标事件时调用ShowCursor(true);
  • 在你的MFC程序中调用SetWindowsHookEx(WH_MOUSE, HookProc, hDll, 0)安装全局钩子;
  • 只要目标应用有鼠标事件触发,就会在它的线程里执行ShowCursor(true),逐步将光标计数拉回非负数,光标即可显示。

2. 远程线程注入直接调用ShowCursor

直接在目标应用的进程空间内执行ShowCursor(true):

  1. 用FindWindow获取POS终端应用的主窗口句柄(可通过Spy++工具获取窗口标题或类名来定位);
  2. 调用GetWindowThreadProcessId获取窗口所属进程的ID;
  3. 用OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId)打开目标进程;
  4. 通过GetProcAddress(GetModuleHandle(L"user32.dll"), "ShowCursor")获取ShowCursor的函数地址;
  5. 在目标进程中用VirtualAllocEx分配内存,写入参数TRUE;
  6. 调用CreateRemoteThread在目标进程中执行ShowCursor,传入参数地址;
  7. 操作完成后释放相关资源,目标进程的光标计数会被增加,光标就能显示。

3. 强制替换系统光标

如果上述方法无效,可尝试强制设置可见的系统光标覆盖目标应用的隐藏操作:

  • 调用SetSystemCursor将所有系统光标(如IDC_ARROW)设置为可见的光标资源;
  • 或在全局钩子的回调中调用SetCursor,每次触发时强制设置一个可见光标,绕过目标应用的光标隐藏逻辑。

内容的提问来源于stack exchange,提问作者user20716902

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:53:14