Zugriff auf den Inhalt eines Fensters eines fremden Programmes

28/02/2009 - 10:07 von Kowalski | Report spam
Hi,

ich möchte gerne an den Inhalt eines Fensters eines fremden Programmes
gelangen. Der Programmierer hat die Entnahme aus dem Fenster über die
Zwischenablage verhindert. Aber irgendwie im Speicher muss der Inhalt des
Fensters ja schließlich vorhanden sein. Wie kann man dies also mittels VBA
hinbekommen ?

Gruß Kowalski !
 

Lesen sie die antworten

#1 Kowalski
01/03/2009 - 13:43 | Warnen spam
"Kowalski" schrieb:

Hi,

ich möchte gerne an den Inhalt eines Fensters eines fremden Programmes
gelangen. Der Programmierer hat die Entnahme aus dem Fenster über die
Zwischenablage verhindert. Aber irgendwie im Speicher muss der Inhalt des
Fensters ja schließlich vorhanden sein. Wie kann man dies also mittels VBA
hinbekommen ?

Gruß Kowalski !



Hi,

ich habe mal ein wenig im Internet gesucht und folgendes Code-Beispiel
gefunden mit dem man den Text aus einem geöffneten Nodepad-Fenster
einlesen und zur Anzeige bringen kann.
Das Beispiel funktioniert bei mir auch, aber wenn ich den Code umschreibe
und auf meine Anwendung beziehe dann funktioniert es nicht.
Kann der Programmierer die Entnahme des Textes für sein Fenster verhindern ?
Irgendwie muss man doch aber rankommen können, schließlich steht doch der
Test irgendwo im Speicher.

Kann jemand weiterhelfen ??

Gruß Kowalski !


Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA"
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2
As String) 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 parentHWND As Long
Private ChildHWND
Private text As String
Private textlength As Long

Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE

Private Sub Main()

parentHWND = FindWindow("Notepad", vbNullString)
ChildHWND = FindWindowEx(parentHWND, 0&, "edit", vbNullString)
textlength = SendMessage(ChildHWND, WM_GETTEXTLENGTH, 0&, 0&)
text = String$(textlength, vbNullChar)
Call SendMessage(ChildHWND, WM_GETTEXT, textlength + 1, ByVal text)
MsgBox text

end sub

Ähnliche fragen