Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Вставить данные диалоговому окну чужой программы

93K
04 марта 2014 года
rempaul
1 / / 04.03.2014
Всем привет. Очень нужна помощь в написании программы.

Суть задачи: есть запущенная сторонняя программа с главным окном "Ansoft HFSS - Project1"
Этой программе передается фокус, эмулируется комбинация клавиш, которая открывает диалоговое окно с выбором файла "Run Script" - показано на фото.

В это диалоговое окно (а точнее в графу Имя файла) нужно вставить путь файла из буфера, и нажать Энтер (открыть файл) .
До вставки все работает, путь файла сохраняется в буфере, после открытия диалогового окна дальше ничего не происходит, то ли фокус не передается этому окну то ли не пойми чего... .

Вставить путь из буфера пытался через эмуляцию контрал+в - почему то не срабатывает, вообще никакие действия с диалоговым окном не срабатывают... .
хотя по умолчанию когда оно открывается строка ввода активна и вручную можно вставить из буфера
AppActivate перед вставкой тоже не срабатывает.
Буду рад любой помощи/любым подсказкам.


Код:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim OFD As New OpenFileDialog With {.Filter = "VBSript|*.vbs"}
OFD.InitialDirectory = "D:" ' Выбор файла и получение его полного пути
If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
Clipboard.SetText(OFD.FileName) ' Копировать путь файла в буфер обмена
End If
End Sub

Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click
AppActivate("Ansoft HFSS - Project1") 'Фокус на запущенное окно

' Далее эмуляция клавиш Alt+T+S и открытие диалогового окна "Run Script"
My.Computer.Keyboard.SendKeys("%", True)
My.Computer.Keyboard.SendKeys("T", True)
My.Computer.Keyboard.SendKeys("S", True)

' Далее не работает
My.Computer.Keyboard.SendKeys("^V", True) ' Эмуляция ctrl+V
My.Computer.Keyboard.SendKeys("{enter}")
End Sub
313
04 марта 2014 года
UserNet2008
716 / / 03.04.2010
примерно здесь

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог