Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi FensterText per ProcessID bekommen? (https://www.delphipraxis.net/106538-fenstertext-per-processid-bekommen.html)

sk0r 12. Jan 2008 14:31


FensterText per ProcessID bekommen?
 
Hi,

kurze und schnelle Frage: WIe kann ich per WinAPI den
Text des Fensters einer Anwendung bekommen deren ProcessID
ich habe? Ich finde bei MSDN leider keine API.

Danke im Vorraus für Hilfe

MfG: sk0r

DGL-luke 12. Jan 2008 14:33

Re: FensterText per ProcessID bekommen?
 
von der pid solltest du irgendwie zum hauptfenster kommen, und das handle des hauptfensters kann in GetWindowText(Len) packen.

Wotan89 12. Jan 2008 14:36

Re: FensterText per ProcessID bekommen?
 
http://msdn2.microsoft.com/en-us/library/ms633520(VS.85).aspx

sk0r 12. Jan 2008 14:38

Re: FensterText per ProcessID bekommen?
 
GetWindowText() habe ich schon ausprobiert. MEin Ziel ist es,
dass eine injizierte DLL den Fenstertext des Zielprogrammes zu bekommen.

Code:
procedure TForm1.FormCreate(Sender: TObject);
var
  myBuf: array[0..250] of Char;
begin
  setlasterror(ERROR_SUCCESS);
  GetWindowText(0, myBuf, sizeof(myBuf));
  showmessage(myBuf);
  showmessage(syserrormessage(getlasterror));
end;
Die Eigene Anwendung hat doch immer die Nummer 0, oder?

SirThornberry 12. Jan 2008 14:46

Re: FensterText per ProcessID bekommen?
 
nein, auch die eigene Anwendung hat nicht die 0

sk0r 12. Jan 2008 14:49

Re: FensterText per ProcessID bekommen?
 
Also GetWindowText kann nicht einfach so funktionieren, da es ja
selbst ein Handle als Parameter benötigt. Aber wie komme ich da drann? :/

DGL-luke 12. Jan 2008 15:14

Re: FensterText per ProcessID bekommen?
 
ähm, getcurrentprocess oder so ähnlich sollte dir die procid geben... und dann weiter wie in meinem ersten post ^^

sk0r 12. Jan 2008 15:15

Re: FensterText per ProcessID bekommen?
 
schon klar, aber wie komme ich denn an das fenster handle?^^

DGL-luke 12. Jan 2008 15:18

Re: FensterText per ProcessID bekommen?
 
aus der google-suche entnommen:

Zitat:

Enumerate all windows (EnumWindows()), get process ID for each one (GetWindowThreadProcessId()). Compare it with process ID you've got and if the same you found your window.

Olli 12. Jan 2008 16:29

Re: FensterText per ProcessID bekommen?
 
Die meisten Prozeße werden mehrere Fenster haben. Schlimmer noch, dank der Tatsache, daß es sowas wie ein "Hauptfenster" nicht gibt (ein Prozeß kann da auch mehrere mit dem entsprechenden Fensterstil haben), mußt du wohl, wie schon erwähnt durch alle Fenster gehen und ermitteln ob das gewünschte dabei ist. Da wird wohl nur eine Kombination aus Text, Klasse und Stil (o.ä.) einen Erfolg bringen. Wenn du nur den Text ermittelst, kann das schiefgehen.


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

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