有什么方法可以向在 wine 中运行的应用程序发送启动按键吗?

有什么方法可以向在 wine 中运行的应用程序发送启动按键吗?

长话短说,我试图访问 Synthesia 中的一个特殊窗口,该窗口仅在您使用以下命令执行应用程序时显示Shift+单击。问题是,我不知道如何在 Linux 上重现这个问题,同时在 wine 下运行应用程序。我以为这可能是命令行的问题,但我也找不到执行此操作的命令。

这让我不禁想问,这真的可能吗?如果可能的话,怎么做呢?

答案1

该程序使用GetKeyStateAPI​​来检测Shift键如下:

.text:0040D575                 call    ds:GetKeyState
.text:0040D57B                 mov     ecx, 8000h
.text:0040D580                 test    cx, ax
.text:0040D583                 jnz     loc_40E21F   ; jumps to special config dialog show
  1. Synthesia在具有喜欢的名称(我的:)的目录中生成 bash 脚本runme并填充以下行:

    #!/bin/bash
    wine Synthesia.exe
    
  2. 将其属性更改为可运行chmod +x rumne并确保您可以单击并运行即刻bash 脚本。我的意思是无需询问对话框即可运行 bash 脚本!使用这个答案

  3. 按住Shift键并单击/双击运行runme。程序正常运行!现在关闭它但不要松开Shift键。再做一次并单击/双击运行runme以显示特殊配置对话框。

    给我看看!

答案2

另一种方法是在 wine 下运行Explorer.exe,然后执行 Shift+Click 操作。与上述方法不同,它不依赖于要更改的特定设置或脚本

相关内容