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 Prozessname änderbar? (https://www.delphipraxis.net/32370-prozessname-aenderbar.html)

UweR 22. Okt 2004 10:32


Prozessname änderbar?
 
HAllo Leute,

ich habe das folgende Problem:

Ich muß mehrere Instanzen meines Progs die auf der selben Machine laufen irgendwie auseinanderhalten können. Ich komme aber dank TerminalServer-Umgebung nur an die Prozesse ran. Ist es vielleicht möglich den Prozessnamen zu beinflussen ohne die EXE umzubenennen? Oder gibts noch was anderes was ich mißbrauchen könnte?

Luckie 22. Okt 2004 10:33

Re: Prozessname änderbar?
 
Jeder Prozess hat eine eindeutige ID. Das sollte reichen.

Und Prozesse umbenennen geht nicht.

UweR 22. Okt 2004 11:05

Re: Prozessname änderbar?
 
Hallo Luckie,

Zitat:

Und Prozesse umbenennen geht nicht.
Hatte ich erstens befürchtet und zweitens hätts mich auch gewundert wenns ginge.

Zitat:

Jeder Prozess hat eine eindeutige ID. Das sollte reichen.
Tut's aber leider nicht. Das Problem ist das folgende. Mein Prog liegt in mehreren Verzeichnissen und damit verbunden in mehreren "Konfigurationen" vor. Progs die verschieden konfiguriert sind dürfen und sollen nebeneinander her laufen, welche mit der gleichen Konfiguration aber nicht. Da das ganze auch noch in ner Terminalserver-Umgebung laufen soll sind meine Möglichkeiten auch noch, sagen wir mal begrenzt sind suche ich dringend an ner praktikablen Lösung und wenn's von hinten durch die Brust ins Auge ist.

choose 22. Okt 2004 11:07

Re: Prozessname änderbar?
 
Hallo UweR,

versuch es mit einer Hier im Forum suchenMutex pro Konfiguration.

UweR 22. Okt 2004 11:12

Re: Prozessname änderbar?
 
@choose:

Die MUTEXe in den verschiedenen TerminalServer-Sitzungen sehen sich nicht, über die Fenster kann ich auch nicht gehen weil da auch nur die in der eigenen Sitzung sichtbar sind. Als einzig sitzungübergreifendes gibts nur den Prozess.

w3seek 22. Okt 2004 13:03

Re: Prozessname änderbar?
 
Zitat:

Zitat von UweR
Die MUTEXe in den verschiedenen TerminalServer-Sitzungen sehen sich nicht, über die Fenster kann ich auch nicht gehen weil da auch nur die in der eigenen Sitzung sichtbar sind. Als einzig sitzungübergreifendes gibts nur den Prozess.

1. Wenn der Mutex Name mit Global\ beginnt, dann sollte er fuer alle Prozesse sichtbar sein.
2. Prozesse sind nicht Sitzungsuebergreifend. Jede Sitzung enthaelt eine Liste der zugehoerigen Prozesse. Der Zugriff auf bestimmte Objekte etc kann auf Sessions begrenzt sein, ist aber nicht grundsaetzlich der fall.
3. Die Prozess-ID ist session-uebergreifend, d.h. sie sollte zur Identifikation voellig ausreichen. Ob der Zugriff auf den Prozess mit z.b. OpenProcess() moeglich ist, haengt allein von den Zugriffsrechten ab.

Fazit: Die Process ID ist voellig ausreichend und eindeutig.

choose 22. Okt 2004 13:23

Re: Prozessname änderbar?
 
Hallo UweR,

Der Mutex-Namensraum verhält sich so, wie von w3seek beschrieben und hier nachzulesen: MSDN-Library durchsuchenKernel Object Namespaces. Auch stimme ich der Äußerung über die eineindeutige PID zu, wenn Du jedoch ohnehin unterschiedliche Konfigurationen verwendest, könntest Du den Mutex-Namen direkt dort ablegen und bist nicht gezwungen, mit den dynamischen PIDs zu arbeiten.

UweR 22. Okt 2004 13:37

Re: Prozessname änderbar?
 
Hallo w3seek,

Zitat:

Wenn der Mutex Name mit Global\ beginnt, dann sollte er fuer alle Prozesse sichtbar sein.
Werde ich auf jeden Fall mal ausprobieren. Könnte schon die Lösung der Probleme sein.

Zitat:

2. Prozesse sind nicht Sitzungsuebergreifend. Jede Sitzung enthaelt eine Liste der zugehoerigen Prozesse. Der Zugriff auf bestimmte Objekte etc kann auf Sessions begrenzt sein, ist aber nicht grundsaetzlich der fall.
Der Prozess läuft logischerweise nur in einer Sitzung ab, aber ich kann mir aus einer Sitzung heraus alle auflisten lassen, die entsprechenden Rechte mal vorausgesetzt. Wobei ich vorraussetzen kann das mein Prog mit Adminrechten läuft.

Zitat:

3. Die Prozess-ID ist session-uebergreifend, d.h. sie sollte zur Identifikation voellig ausreichen. Ob der Zugriff auf den Prozess mit z.b. OpenProcess() moeglich ist, haengt allein von den Zugriffsrechten ab.

Fazit: Die Process ID ist voellig ausreichend und eindeutig.
Die Prozess-ID ist zwar immer eindeutig, auf eine Maschine bezogen sogar eineindeutig hilft mir aber nur soweit weiter das ich jetzt noch einen Weg finden müßte den Prozeß quasi zu markieren so das mein Prog erkennen kann ob es in dieser Konfiguration schon mal irgendwo läuft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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