| |
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! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 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
|
|