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 Owner eines Mutex-Handles herausfinden? (https://www.delphipraxis.net/33030-owner-eines-mutex-handles-herausfinden.html)

Dani 31. Okt 2004 18:21


Owner eines Mutex-Handles herausfinden?
 
Hi,

wie kann man herausfinden, zu welchem Prozess/Thread/Fenster ein mit CreateMutex erzeugtes Handle gehört? :gruebel:

w3seek 31. Okt 2004 20:02

Re: Owner eines Mutex-Handles herausfinden?
 
System-Handles gehoeren grundsaetzlich nur dem Prozess der sie erstellt hat. Gibst du den Handle der in Prozess A erstellt wurde an Prozess B, kann der damit herzlich wenig anfangen da er bei der Benutzung wahrscheinlich den fehler "ungueltiger Handle" bekommt, oder aber faelschlicherweise ein falsches objekt des gleichen typs (mutex z.b.) verwendet wird. Somit ist es voellig ueberfluessig herauszufinden wer den Handle erstellt hat, da er sowieso nur fuer den jeweiligen Prozess sichtbar ist.

Dani 31. Okt 2004 21:23

Re: Owner eines Mutex-Handles herausfinden?
 
Okay, die Frage war falsch gestellt. Wie findet man heraus, welcher Prozess einen Mutex-Handle mit einem bestimmten Namen angelegt hat? Merkt sich das Windows überhaupt?

w3seek 31. Okt 2004 21:25

Re: Owner eines Mutex-Handles herausfinden?
 
Wie gesagt, ein Handle ist nur gueltig fuer den Prozess in dem er erstellt wurde. Was du meinst ist das Objekt auf das ein Handle zeigt. Im Falle von Mutexes laesst sich leider nicht ermitteln welcher Prozess/Thread das Objekt erstellt hat.

Dani 31. Okt 2004 21:29

Re: Owner eines Mutex-Handles herausfinden?
 
Verdammt! Dann muss ich wohl hoffen, dass niemand sein Formular "TForgeParent" nennt und FindWindow benutzen. Trotzdem vielen Dank fürs Aufklären :mrgreen:

Christian Seehase 31. Okt 2004 21:35

Re: Owner eines Mutex-Handles herausfinden?
 
Moin Dani,

um sicherzustellen, dass ich an solchen Stellen einen eindeutigen String habe, nehme ich dafür immer eine GUID, die Du Dir mit STRG-SHIFT-G in der IDE erstellen lassen kannst.

Assarbad 5. Dez 2004 21:49

Re: Owner eines Mutex-Handles herausfinden?
 
Die NT Native API bietet Möglichkeiten um an die Informationen zu kommen, die du willst. Da sie aber nicht (lies: schlecht) dokumentiert und weitgehend (lies: >90%) inoffiziell ist, mußt du mit Inkompatibilitäten rechnen. Das Handle gehört übrigens zwar dem Prozess (also dieses bestimmte Handle mit diesem bestimmten Wert), aber ein Mutex ist ein Kernelobjekt (Mutant), daher kann man Informationen über ihn erhalten. Such mal im WWW nach WinObj (von SysInternals) und WinObjEx ... und dann gibt's noch eine Variante von MS. Die zeigen dir, was geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.

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