Hallo,
Ich bin am verzweifeln. Ich versuche seit geraumer Zeit aus eine Anwendung das Handle auszulesen, nur mit Teilerfolg. Ich denke ich mache das an ein Beispiel fest.
Ich möchte einfach aus dem geöffneten Notepad den Textinhalt auslesen.
Hier mein Code:
das Handle vom Parent "Notepad" (FindWindow) bekomme ich ohne weiteres, das klappt,
aber das von FindWindowEx (Zeile 20) bekomme ich nicht hin. Als ChildAfter und Windowstext habe Null,IntPtr.Zero, 0,"",Nothing Versucht, ohne Erfolg.
Was mache ich falsch?
Ich habe einige Foren durchstöbert auch Toturials angeschaut. Ich bin immernoch sehr stuzig wie die schreibweise bei VB2010 aussieht!
1) um die User32.DLL zu Impotieren, ist es in meinem geposteten Code richtig, oder ist die
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ... richtig ?
2) die Handle Variablen sind InTPtr? das sollte passen, aber ganz sicher bin ich mir nach den X-Foren, Infos etc. die ich gefunden habe, auch nicht mehr.
über Spy++ habe ich mir die Infos "rausgesucht" wie das Handle und die Klassen.
Bitte um Hilfe
Vielen Dank im Voraus
Marschel
Ich bin am verzweifeln. Ich versuche seit geraumer Zeit aus eine Anwendung das Handle auszulesen, nur mit Teilerfolg. Ich denke ich mache das an ein Beispiel fest.
Ich möchte einfach aus dem geöffneten Notepad den Textinhalt auslesen.
Hier mein Code:
VB.NET-Quellcode
- Imports System.Runtime.InteropServices
- Public Class Form1
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Public Shared Function FindWindow( _ByVal hWndP As String, _
- ByVal zero As String) As IntPtr
- End Function
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Private Shared Function FindWindowEx( _ByVal hWndP As IntPtr, _
- ByRef hWndC As IntPtr, _ByVal lpclassName As String, _
- ByVal windowTitel As String) As IntPtr
- End Function
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Private Shared Function GetWindowTextLength(ByVal hwnd3 As IntPtr) As Integer
- End Function
- Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim hWndP As IntPtr
- Dim hWndC As IntPtr
- hWndP = FindWindow("Notepad", Nothing)
- hWndC = FindWindowEx(hWndP, 0, "Edit", vbNullString) 'vbNullsting
- Text1.Text = hWndP
- Text2.Text = hWndC '
- End SubEnd Class
das Handle vom Parent "Notepad" (FindWindow) bekomme ich ohne weiteres, das klappt,
aber das von FindWindowEx (Zeile 20) bekomme ich nicht hin. Als ChildAfter und Windowstext habe Null,IntPtr.Zero, 0,"",Nothing Versucht, ohne Erfolg.
Was mache ich falsch?
Ich habe einige Foren durchstöbert auch Toturials angeschaut. Ich bin immernoch sehr stuzig wie die schreibweise bei VB2010 aussieht!
1) um die User32.DLL zu Impotieren, ist es in meinem geposteten Code richtig, oder ist die
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ... richtig ?
2) die Handle Variablen sind InTPtr? das sollte passen, aber ganz sicher bin ich mir nach den X-Foren, Infos etc. die ich gefunden habe, auch nicht mehr.
über Spy++ habe ich mir die Infos "rausgesucht" wie das Handle und die Klassen.
Bitte um Hilfe
Vielen Dank im Voraus
Marschel