Автоматизация пользовательского интерфейса Powershell в консольном приложении Foxpro

Я не могу заставить этот код работать в консольном приложении foxpro. Есть ли что-то, что мне не хватает. Я тестировал этот код в других приложениях, и он работает.

    ipmo "D:\WASP\WASP.dll"
    Select-Window "ntvdm" | Set-WindowActive  | Select-Control | Send-Keys "r"

приложение foxpro

Когда я нажимаю "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 между каждой строкой.

Другие вопросы по тегам