Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
372to376
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fensterhandle aus Fremdprogrammen ermitteln

Fensterhandle aus Fremdprogrammen ermitteln
29.01.2004 21:43:28
chris b
Hallo Excel Profis,
habe ein Makro mit dem ich mir aus einem Fensternamen den Handle ermitteln kann,dieser Code->
Private Declare

Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub test_handle()
Dim wHandle As Long
wHandle = FindWindow(vbNullString, "Rechner")
End Sub

Jetzt bekomme ich in die Variable "wHandle" den Handle des Fensters Rechner also des WindowsRechners
gschrieben.
Wie kann ich es machen das ich wo jetzt "Rechner" steht nur *Rech* eingeben muss und er mir auch den Handle des Rechners anzeigt.
Ich habe es mit dem like operator versucht aber es klappt nicht.
Ich hoffe ihr könnt mir weiterhelfen.
Vielen Dank schon einmal Christian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fensterhandle aus Fremdprogrammen ermitteln
29.01.2004 22:01:23
K.Rola
Hallo,
Die API- Funktion FindWindow verlangt einen exakten String!
Gruß K.Rola
AW: Fensterhandle aus Fremdprogrammen ermitteln
29.01.2004 22:02:17
Nepumuk
Hallo Chris,
das geht nicht. Den Weg den ich dir gezeigt habe ist der einzig gangbare.
Gruß
Nepumuk
AW: Fensterhandle aus Fremdprogrammen ermitteln
29.01.2004 22:25:49
chris b
Vielen Danke für den Tipp euch beiden und schönes Wochenende !
chris
so geht es
29.01.2004 22:26:28
Reinhard
Hi Cristian,
ruf mal die Sub getWindowlist auf, es bringt dir die hndle.Nummer von "rech".
Gruß
Reinhard

Option Explicit
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal wIndx As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Const GWL_STYLE = (-16)
Const WS_VISIBLE = &H10000000
Const WS_BORDER = &H800000
Public Sub GetWindowList()
Dim hWnd As Long, sTitle As String, lStyle As Long, Task_name() As String
Dim count As Integer, index As Integer, gefunden As Boolean
hWnd = FindWindow(ByVal 0&, ByVal 0&)
hWnd = GetWindow(hWnd, GW_HWNDFIRST)
Do
lStyle = GetWindowLong(hWnd, GWL_STYLE)
lStyle = lStyle And (WS_VISIBLE Or WS_BORDER)
sTitle = GetWindowTitle(hWnd)
If Trim(sTitle) <> "" And InStr(LCase(sTitle), "rech") <> 0 Then MsgBox sTitle & hWnd
hWnd = GetWindow(hWnd, GW_HWNDNEXT)
Loop Until hWnd = 0
End Sub
Private Function GetWindowTitle(ByVal hWnd As Long) As String
Dim lResult As Long, sTemp As String
lResult = GetWindowTextLength(hWnd) + 1
sTemp = Space(lResult)
lResult = GetWindowText(hWnd, sTemp, lResult)
GetWindowTitle = Left(sTemp, Len(sTemp) - 1)
End Function

Anzeige
AW: so geht es
30.01.2004 01:44:03
chris b
Vielen Dank Reinhard muss ich mir gleich mal genauer ansehen !!!!!!!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige