Skip to content

ParsecClientQKeyMapper

TERAGAWA, SHORYU edited this page Mar 11, 2024 · 4 revisions

Parsec无法使用按键映射功能解决方法:

Parsec窗口处于前台时,默认会拦截所有鼠标和键盘输入,所以通常情况QKeyMapper等各种按键映射工具是无法工作的。Github上PowerToys的问题中提出了一种针对客户端的解决方案。

Parsec使用 "parsecd.exe" 和 "pservice.exe" 两个进程协作来完成基本的软件功能。

  • pservice.exe 功能描述:为了在管理员模式和UAC屏幕(如任务管理器)中提供程序访问权限,Parsec在计算机上运行一个Windows服务(pservice.exe)。这个服务始终在后台运行,即使Parsec没有运行也是如此。类似的,Teamviewer和其他远程桌面产品也会运行类似的服务。这个服务的目的是为了允许Parsec在用户没有登录的情况下仍然能够运行,并且在管理员模式和UAC屏幕中也能够正常工作。通过运行一个服务,Parsec可以在操作系统启动时自动启动,并在后台持续运行,而不需要用户手动登录。这样,即使用户没有登录,远程用户仍然可以访问计算机,并且可以与管理员模式和UAC屏幕进行交互。
  • 同时 pservice.exe 也会和 parsecd.exe 窗口显示进程配合完成拦截鼠标和键盘输入的工作。在Parsec Client端PC上并没有在未登录状态下运行的需求,因为Client端用于连接到Host主机并将操作发送到Host主机端对其进行操作和控制。所以可以在Parsec Client端PC上通过任务管理器或者控制面板中的"服务"管理工具在 parsecd.exe 进程运行前停止 pservice.exe 服务进程。停止pservice.exe后再运行 parsecd.exe 窗口显示进程就可以避免鼠标和键盘输入被拦截,QKeyMapper等各种按键映射工具就可以正常工作了。
    // 加入"服务"管理工具图片
  • 通过上面方法Parsec Client端PC上可以通过QKeyMapper来使用键盘映射为虚拟游戏手柄来加入Parsec Host端的游戏,这样通过Parsec联机时Client端和Host端都使用键盘操作也能达到多个游戏手柄联机游戏的效果。
    // Parsec 游戏手柄选择图片
  • 对于Parsec Host端,正常情况下Host端应该不需要保持Parsec窗口一直在前台显示,所以通常情况应该不受影响。如果确实需要的话,有Github issue上描述说Host端也可以按照这种方式操作(问题链接)。在不需要管理员模式运行游戏和软件的前提下可以谨慎的尝试,先停止 pservice.exe后再运行 parsecd.exe 窗口显示进程,等待Parsec窗口启动后再启动 pservice.exe 服务。