| |
VB & Windows APIFindWindow und FindWindowEx | | | Autor: vba11 | Datum: 14.09.12 20:39 |
| Hallo,
ich versuche gerade, mich mit bestimmten Funktionen der WinApi vertraut zu machen.
Zunächst einmal wollte ich mit der Funktion FindWindow
das Handle eines bestimmten Fensters auslesen und auf der Konsole ausgeben lassen.
Im nächsten Schritt wollte ich mit der Funktion FindWindowEx das Handle eines bestimmten Unterfensters dieses Fensters ausgeben lassen.
Auf dem Weg dorthin habe ich spaßeshalber erstmal auch von der zweiten Funktion das Handle des
"Eltern"fensters ausgegeben und dabei festgestellt, daß sich beide Werte unterscheiden.
Irgendwo muß also ein Fehler sein, leider steh ich etwas auf dem Schlauch.
Vielleicht kann mir jemand bei der Fehlersuche helfen ?
Programm 1:
Module Module1
Private Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long
Sub Main()
Dim FensterHandle As Long
FensterHandle = FindWindow(vbNullString, "Rechner")
MsgBox(FensterHandle)
End Sub
End Module Programm 2:
Module Module1
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" ( _
ByVal hWndParent As Integer, _
ByVal hWndChildAfter As Integer, _
ByVal lpszClass As String, _
ByVal lpszWindow As String _
) As Integer
Sub Main()
Dim FensterHandle As Integer
Dim Steuerelement As Integer
FensterHandle = FindWindowEx(0, 0, vbNullString, "Rechner")
'Steuerelement = FindWindowEx(FensterHandle, 0, "Bearbeiten", vbNullString)
MsgBox(FensterHandle)
'MsgBox(Steuerelement)
End Sub
End Module | |
Re: FindWindow und FindWindowEx | | | Autor: Rippler | Datum: 15.09.12 02:30 |
| Die Deklaration ist falsch.
muss lauten:
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" ( _
ByVal hWndParent As Long, _
ByVal hWndChildAfter As Long, _
ByVal lpszClass As String, _
ByVal lpszWindow As String _
) As Long | |
Re: FindWindow und FindWindowEx !!! Gelöst !!! | | | Autor: vba11 | Datum: 15.09.12 10:42 |
| Ne, der Austausch von Long/Integer ist schon richtig, sonst meckert der Compiler (VC Express 2010, Win7-64bit)
allerdings habe ich vergessen, daß beim ersten Programm auch zu machen, richtig wäre also
Module Module1
Private Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Integer
Sub Main()
Dim FensterHandle As Integer
FensterHandle = FindWindow(vbNullString, "Rechner")
MsgBox(FensterHandle)
'Debug.Print(FensterHandle)
End Sub
End Module Dann geben beide Programme auch das korrekte Handle aus.
Beitrag wurde zuletzt am 15.09.12 um 10:59:56 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|