Если это ваша заявка; Вы можете изменить код так, чтобы он проверял, запускаете ли вы его из командной строки / с соответствующими аргументами, и запускаете саму кнопку click (). Это был бы самый простой подход (я думаю, что ответ Джона показывает это)
Если это не ваше приложение; Вы все еще можете сделать то же самое, но это не так красиво. Вы можете написать код, который будет выполнять winForm, а затем активировать его (чтобы он был в фокусе)
Public Shared Sub ActivateWoW()
Dim myApp As Process = Process.GetProcessesByName("MyApp").First
AppActivate(myApp.Id)
End Sub
Затем вы можете использовать SendKeys () для имитации взаимодействия с формой. Допустим, кнопка запуска требует выбора двух клавиш «tab» ...
SendKeys.Send("{TAB}{TAB}")
Тогда быстрая пауза ...
Thread.Sleep(25)
Затем нажмите клавишу ввода (которая почти всегда так же хороша, как щелчок мыши при нажатии кнопки)
SendKeys.Send("{ENTER}")
Если вы хотите принять более активное участие, чем это; вам нужно начать использовать вызовы WIN32 API. Вот пример кода для щелчка мышью ...
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Const WM_LBUTTONUP As Long = &H202
Private Const WM_RBUTTONUP As Long = &H205
Private Const WM_LBUTTONDOWN As Long = &H201
Private Const WM_RBUTTONDOWN As Long = &H204
Private Shared Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long
Return (HiWord * &H10000) Or (LoWord And &HFFFF&)
End Function
Public Shared Sub SendMouseClick()
Dim Wow As Long = FindWindow("GxWindowClass", "MyWindow")
Dim dWord As Long = MakeDWord(LastX - LastRectX, LastY - LastRectY)
SendMessage(Wow, WM_RBUTTONDOWN, 1&, dWord)
Threading.Thread.Sleep(100)
SendMessage(Wow, WM_RBUTTONUP, 1&, dWord)
End Sub