我正在尝试将击键从 C# 程序发送到 Java 应用程序
发送密钥的代码是:
private void SendKeysToWindow(string WindowName, string KeysToSend)
{
IntPtr hWnd = FindWindow(null, WindowName);
ShowWindowAsync(hWnd, SW_SHOWNORMAL);
SetForegroundWindow(hWnd);
SendKeys.Send(KeysToSend);
}
这段代码适用于所有程序,除了我试图控制的 Java 应用程序。
例如,如果我使用以下代码创建一个按钮:
SendKeysToWindow("Java application window name", "{F2}");
SendKeysToWindow("Popoup window name", "123");
这会将 F2 发送到主程序窗口,其中会弹出另一个窗口,第二个 SendKeysToWindow 命令将“123”发送到该窗口。
这就是它的预期工作方式,所有其他程序也是如此。
但是,当我将这些命令发送到 Java 程序时,会发生以下情况:第一个 SendKeysToWindow 命令执行正常(出现弹出窗口),但它不会将“123”发送到该窗口。
如果再次按下该按钮,“123”将被发送到弹出窗口,并打开另一个弹出窗口。
如果我为两个 SendKeysToWindow 命令创建两个单独的按钮,并依次按下它们,则这两个命令都可以正常执行。
可能是什么问题?
感谢您提前提供的帮助,这真的让我发疯。
P.S.:我是 C# 的初学者,所以请保持简单的答案。