У меня есть некоторый VB-код, который использует COM-API и приводит к появлению определенного диалогового окна на экране. Моя программа является консольным приложением, которое нужно запускать в командном файле, но я не нашел другого способа сделать что-либо, кроме способа автоматического управления диалоговым окном.
Вот вызов API (без кода настройки), который приводит к появлению диалогового окна:
Dim oScript = New ProvideX.Script()
' Setup code here '
oScript.Run(commName)
Этот метод не имеет возвращаемого значения и дополнительных параметров, которые позволили бы мне заполнить нужные мне значения через API.
Я нашел один метод, чтобы получить дескриптор диалогового окна, но я не уверен, будет ли он работать или вместо этого попадет в окно командной строки.
Dim windowHandle = Process.GetCurrentProcess().MainWindowHandle
Есть ли способ получить список окон, которые были созданы моим процессом, чтобы я мог определить, какое окно соответствует моему диалогу?
Кроме того, кто-нибудь может указать мне правильное направление, как отправлять щелчки мыши и нажатия клавиш в неуправляемое диалоговое окно, или есть какой-то лучший способ сделать то, что мне нужно.
Это довольно простое диалоговое окно с предупреждением, которое необходимо принять, нажав кнопку ОК. Тогда есть два текстовых поля, которые должны быть заполнены данными, которые у меня есть. И тогда мне нужно нажать на другую кнопку.
Я не прошу полного ответа, я просто ищу общий способ, как это сделать.
Редактировать: Я проводил исследования на PINVOKE.net и думаю, что SendInput сработает, если я смогу получить правильную ручку. Я прошел через диалоговое окно, и все это может быть обработано с клавиатуры.