AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Prozesse herausfinden

Ein Thema von kuba · begonnen am 12. Nov 2012 · letzter Beitrag vom 13. Nov 2012
Antwort Antwort
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 19:46
Hallo,

ich schreibe gerade ein Programm für Terminal Server. Wie finde ich heraus, ob ein Programm bereits gestartet wurde ? Dabei soll die Prozessliste aller anderen angemeldeten Benutzer ausgeblendet werden..

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 22:45
Wieso brauchst du die Prozesse?

Dafür nimmt man eigentlich einen Mutex ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 22:58
Hier im Forum suchenprocess list

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 23:05
per WMI flott mit "Select * from win32_process" und für die interessanten Prozesse per GetProcessOwner (müsste auch hier irgendwo zu finden sein) ergänzen ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 23:19
Kann es sein, dass du ein Programm schreiben möchtest, das pro Terminal-Session nur einmal gestartet werden soll/darf?

MSDN - Mutex Class

Zitat von MSDN - Mutex Class:
On a server that is running Terminal Services, a named system mutex can have two levels of visibility. If its name begins with the prefix "Global\", the mutex is visible in all terminal server sessions. If its name begins with the prefix "Local\", the mutex is visible only in the terminal server session where it was created. In that case, a separate mutex with the same name can exist in each of the other terminal server sessions on the server. If you do not specify a prefix when you create a named mutex, it takes the prefix "Local\". Within a terminal server session, two mutexes whose names differ only by their prefixes are separate mutexes, and both are visible to all processes in the terminal server session. That is, the prefix names "Global\" and "Local\" describe the scope of the mutex name relative to terminal server sessions, not relative to processes.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 23:49
Kann es sein, dass du ein Programm schreiben möchtest, das pro Terminal-Session nur einmal gestartet werden soll/darf?

MSDN - Mutex Class
Nicht ganz so. Ich will ein Programm schreiben, das die Ausführung einer Anwendung für jeden Terminal Client nur einmal zulässt. Mit "IsExeRunning" sehe ich leider alle Prozesse von allen Benutzern. Mein Programm wird in jeder Terminalsession gestartet. Da wäre es sehr praktisch, wenn ich immer nur die "Session Eigenen" Prozesse herausfinden könnte. Ich glaube mit "GetProcessOwner" müsste es funktionieren. Mal ausprobieren ...

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Eigene Prozesse herausfinden

  Alt 12. Nov 2012, 23:50
TerminalClient = Session
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Eigene Prozesse herausfinden

  Alt 13. Nov 2012, 12:28
Hallo,

hab noch eine bessere Idee. Mein Programm wird in jeder RDP-Session automatich gestartet (Shell). Mein Programm startet auch die zu überwachende Anwendung. Das einfachste wäre, die Anwendung zu starten und das Programmende abzuwarten bevor die Anwendung erneut gestartet wird. Da gibt es unzählige Programmbeispiele in Delphi. Die Methode den "ProcessOwner" zu ermitteln wäre zwar etwas eleganter, aber auch komplexer. Außerdem habe ich nur wenig Delphi-Code gefunden um den "ProcessOwner" zu ermitteln.

Danke nochmal für die Anregungen !!

KUBA

PS: habs ausprobiert und funktioniert
Stefan Kubatzki
E=mc2

Geändert von kuba (13. Nov 2012 um 20:36 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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