Нажать на кнопку в диалоговом окне - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Добрый день всем. Подскажите пожалуйста, мне необходимо нажать на кнопку в окне, например "Удалить файл". Пишу код на VBA и все работает, а когда тот же код запускаю на VB.Net, то не работают функции, но и ошибки не выдает. Может на VB.Net есть какие-то свои особенности?
Листинг программы
  1. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  2. Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
  3. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  4. Sub нажать_на_кнопку()
  5. Dim hwnd As Long
  6. hwnd = FindWindow(vbNull, "Удалить файл") 'неправильный hwnd
  7. hwnd = FindWindowEx(hwnd, 0, "Button", "Н&ет") 'неправильный hwnd
  8. PostMessage(hwnd, 245, 0&, 0&) 'не работает
  9. PostMessage(hwnd, 245, 0&, 0&) 'не работает
  10. PostMessage(857560, 245, 0&, 0&) 'не работает даже с правильным hwnd
  11. PostMessage(857560, 245, 0&, 0&) 'не работает даже с правильным hwnd
  12. End Sub
А на VBA все работает

Решение задачи: «Нажать на кнопку в диалоговом окне»

textual
Листинг программы
  1. Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут