2014-01-09 3 views
-2

Итак, я работаю над программой, которая вводит в открытое приложение, которое не имеет api. Поэтому мне нужно выбрать это окно, чтобы моя программа набрала его. Я использую этот код, и он не может найти этот процесс.Как сделать окно активным в vb.net

Dim windowHandle As IntPtr = FindWindow("LolClient", "League of Legends (TM) Client") 
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As IntPtr 
SetForegroundWindow(windowHandle) 

    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait("{TAB}") 
    SendKeys.SendWait(ComboBox1.Text) 
    SendKeys.SendWait("{Enter}") 
+0

Вы должны попытаться искать в классе процессов, во многих случаях это гораздо проще работать с , – tinstaafl

ответ

4

Попробуйте это:

Public Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Integer) As Integer 
Public Declare Auto Function FindWindow Lib "user32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer 
Public Declare Function IsIconic Lib "user32.dll" (ByVal hwnd As Integer) As Boolean 
Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer 

Public Const SW_RESTORE As Integer = 9 
Public Const SW_SHOW As Integer = 5 


Sub FocusWindow(ByVal strWindowCaption As String, ByVal strClassName As String) 
    Dim hWnd As Integer 
    hWnd = FindWindow(strClassName, strWindowCaption) 

    If hWnd > 0 Then 
     SetForegroundWindow(hWnd) 

     If IsIconic(hWnd) Then 'Restore if minimized 
      ShowWindow(hWnd, SW_RESTORE) 
     Else 
      ShowWindow(hWnd, SW_SHOW) 
     End If 
    End If 
End Sub 

Чтобы показать «Калькулятор» вы можете позвонить FocusWindow("Calculator", Nothing) или FocusWindow(Nothing, "CalcFrame")

+0

Спасибо! Это недостающее звено для моего проекта. – LPChip

Смежные вопросы