Hi X-perts
Weiss jemand wie ich in VB herausfinden kann ob ein bestimmtes Programm, vo dem ich den Dateinamen kenne, gestartet ist und es dann in den Vordergrund setzten kann??
thx Dani
Hi X-perts
Weiss jemand wie ich in VB herausfinden kann ob ein bestimmtes Programm, vo dem ich den Dateinamen kenne, gestartet ist und es dann in den Vordergrund setzten kann??
thx Dani
Z.B. so:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" \_
(ByVal lpClassName As Any, ByVal lpCaption As Any) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" \_
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Function IsAppRunning(ByVal strAppName As String, \_
Optional fActivate As Boolean) As Boolean
Dim hwnd As Long, strClassName As String
Dim lngX As Long, lngTmp As Long
On Local Error GoTo Er
IsAppRunning = False
Select Case LCase$(strAppName)
Case "calc": strClassName = "SciCalc"
Case "excel": strClassName = "XLMain"
Case "word": strClassName = "OpusApp"
Case "access": strClassName = "OMain"
Case "powerpoint95": strClassName = "PP7FrameClass"
Case "powerpoint97": strClassName = "PP97FrameClass"
Case "notepad": strClassName = "NOTEPAD"
Case "paintbrush": strClassName = "pbParent"
Case "wordpad": strClassName = "WordPadClass"
Case "outlook2000": strClassName = "rctrl\_renwnd32"
Case Else: strClassName = strAppName
End Select
If strClassName = "" Then
hwnd = FindWindow(vbNullString, strAppName)
Else
hwnd = FindWindow(strClassName, vbNullString)
End If
If hwnd 0 Then
SendMessage hwnd, WM\_USER + 18, 0, 0
lngX = IsIconic(hwnd)
If lngX 0 Then
lngTmp = ShowWindow(hwnd, SW\_SHOWNORMAL)
End If
If fActivate Then
lngTmp = SetForegroundWindow(hwnd)
End If
IsAppRunning = True
End If
Ex:
Exit Function
Er:
MsgBox Err.Description
IsAppRunning = False
Resume Ex
End Function
Reinhard
Nicht schlecht!! Aber wie kann man heraus finden welches der Appname ist …
thx Dani
Das solltest du schon selber wissen - oder halt herausfinden - z.B. mit Spy++ (oder alternativ die Caption in FindWindow verwenden).
Reinhard