Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probleme mit Prozess-Handles (https://www.delphipraxis.net/11200-probleme-mit-prozess-handles.html)

Rakshasa 1. Nov 2003 20:12


Probleme mit Prozess-Handles
 
Mein Prog list eine LIste aller laufenden Prozesse mit der Funktion

===============
Delphi-Quellcode:
Procedure TForm1.LoadProzesse;
var
hProcSnap: THandle;
[...]
begin

hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
if hProcSnap = INVALID_HANDLE_VALUE then exit;

pe32.dwSize := SizeOf(ProcessEntry32);

if Process32First(hProcSnap, pe32) = true then
while Process32Next(hProcSnap, pe32) = true do begin
===============

ein. Ich würde jetzt gerne den Titel des Fensters ermitteln und benutze dazu die Funktion GetWindowText().
Aber leider klappt es nicht, es wird mir kein Titel angezeigt. Genauso wenig funktionieren andere Funktionen wie z.B. GetPriorityClass() ... anscheinend stimmt was mit dem Handle hProcSnap nicht? Was mache ich falsch??
Habe auch schon die Funktion OpenProcess() ausprobiert, ohne Erfolg :((

[edit=Christian Seehase]Delhpi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

SirThornberry 1. Nov 2003 20:37

Re: Probleme mit Prozess-Handles
 
hast dus schonmal mit enumwindows probiert?? Und zum Fenstertitel bekommen ist SendMessage besser, liefert in mehr fällen als GetWindowText was zurück

Christian Seehase 1. Nov 2003 22:36

Re: Probleme mit Prozess-Handles
 
Moin Rakshasa,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Um den Titel eines Controls (Fenster, Button, Edit...) auslesen zu können, benötigst Du das Handle auf dieses Control.
In Ergänzung zu SirThornberrys Posting:
Such' hier mal nach Hier im Forum suchenFindWindow, Hier im Forum suchenEnumWindows, Hier im Forum suchenEnumChildWindows.
Damit solltest Du einiges passendes hier finden können.

Assarbad 14. Feb 2004 19:50

Re: Probleme mit Prozess-Handles
 
Die Frage ist noch als Offen markiert, ohne Rückmeldung des Fragers ... tss tss

Mit den obigen Enum-Funcs bist du im Prozesskontext des entsprechenden Prozesses und kannst dort zB die Prozess-ID ermitteln.

Vielleicht scheiterst du ja auch grade an dieser Hürde. Jemand der in einem anderen Prozess ist, darf nicht einfach in einen anderen (hier den eigenen) Prozess schreiben


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr.

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