Автоматизация пользовательского интерфейса Powershell в консольном приложении Foxpro
Я не могу заставить этот код работать в консольном приложении foxpro. Есть ли что-то, что мне не хватает. Я тестировал этот код в других приложениях, и он работает.
ipmo "D:\WASP\WASP.dll"
Select-Window "ntvdm" | Set-WindowActive | Select-Control | Send-Keys "r"
Когда я нажимаю "r" на клавиатуре, приложение принимает ввод, но когда я запускаю этот код, это не так.
Большое спасибо.
1 ответ
Я только что попытался использовать WASP с вашим кодом против калькулятора, и, похоже, он работает правильно.
Вы можете попробовать использовать это:
[void][System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[Microsoft.VisualBasic.Interaction]::AppActivate((ps ntvdm).MainWindowTitle)
[void][System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("{R}")
Кстати, убедитесь, что ваше приложение действительно имеет имя процесса ntvdm, это может вызвать проблемы. Таким образом, вы делаете то же самое. Если у вас есть проблемы с производительностью, вы можете добавить немного ожидания, например, Sleep -m 50 между каждой строкой.