Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Anfängerfrage: InternalGetWindowText verwenden (https://www.delphipraxis.net/25228-anfaengerfrage-internalgetwindowtext-verwenden.html)

flotschie 3. Jul 2004 11:11

Re: Anfängerfrage: InternalGetWindowText verwenden
 
thx NicoDE,

google war und ist noch immer mein freund, aber gestern nach stundenlangem suchen konnte ich einfach nicht mehr :zwinker:

Gute Nachricht: Bei mir klappts jetzt. Ich bin draufgekommen dass ich einfach alle Parameterwerte in den funktionen, die Long sind, auf Integer geändert habe, und auch die Rückgabewerte der Funktionen auf Integer.

Also vorher hats so ausgesehn:

Code:
Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
und jetzt bei mir siehts so aus:

Code:
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
und siehe da, es funktioniert. Ich hoffe das hat keine schwerwiegenden Auswirkungen auf das System...

w3seek 3. Jul 2004 12:42

Re: Anfängerfrage: InternalGetWindowText verwenden
 
Nur zur Information:

InternalGetWindowText() sendet im Gegensatz zu GetWindowText() keine WM_GETTEXT bzw WM_GETTEXTLENGTH messages, wenn das Fenster zum eigenen Prozess gehoert. Wenn man InternalGetWindowText() verwenden moechte sollte man aber konsequenterweise auch auf GetWindowTextLength() verzichten, da man die Laenge des Strings (in Zeichen!) auch mit InternalGetWindowText() bekommt, indem man die letzten beiden Parameter auf NULL/nil bzw 0 setzt. Bedenkt auch, dass InternalGetWindowText() nur als Unicode-Funktion implementiert ist! Die Laenge wie viele Bytes kopiert wurden oder wie lang der String ist, ist immer in Zeichen (Characters) angegeben, nicht in Bytes. Ein Zeichen in unicode hat 2 bytes, d.h. man muss also doppelt so viel Speicher reservieren. Ich bezweifle mal sehr, dass VB mit Unicode vernuenftig umgehen kann, deshalb ist GetWindowText()/GetWindowTextLength() in VB wohl die bessere Wahl.

flotschie 3. Jul 2004 16:32

Re: Anfängerfrage: InternalGetWindowText verwenden
 
danke w3seek....habe InternalGetWindowText schon probier aber es funkt net - fehlermeldung "Objektverweis wurde nicht auf eine Objektinstanz festgelegt" ....ist der grund das was du beschrieben hast?

flotschie 3. Jul 2004 20:12

Re: Anfängerfrage: InternalGetWindowText verwenden
 
ups....mit grosser verwunderung stell ich fest das man mit GetWindowText ja eigentlich nur die Titelleiste des Fenster auslesen kann! Sch* :wall: das brauch ich ja gar nicht!

... :wiejetzt: ...

Was ich wollte ist grundsätzlich mal den Inhalt eines Fensters (konkret: den eines Internet Explorers) auslesen, und zwar nicht den HTML-Quellcode sondern den effektiv angezeigten Text! jemand eine Ahnung wie ich das sonst machen könnte ausser mit GetWindowText oder überhaupt der Windows API? Bin auch bereit auf Delphi umzusteigen :coder:

Christian Seehase 3. Jul 2004 20:19

Re: Anfängerfrage: InternalGetWindowText verwenden
 
Moin Flotschie,

zum Thema Seiten auslesen, und Hier im Forum suchenHTML parsen (sonst kommst Du nicht an den Text) wirst Du hier einiges finden, allerdings natürlich in Delphi ;-)

So gesehen ist das

Zitat:

Zitat von flotschie
Bin auch bereit auf Delphi umzusteigen

eine gute Idee, wenn Du die Antworten hier finden willst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz