Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Programm in Remote-Desktop-Session (https://www.delphipraxis.net/84385-programm-remote-desktop-session.html)

smudo 16. Jan 2007 11:08


Programm in Remote-Desktop-Session
 
Thema Remote-Desktop:

Kann ich ermitteln, ob ein Programm in einer Remote Desktop Session geöffnet ist?

Ich brauche dieses, um ein Programm sicher auf dem Server updaten zu können. Die Updatefunktion übernimmt das Programm selbst, d.h. es ruft das Updatetool auf, schließt sich und wird nach dem Update wieder automatisch gestartet. Das funktioniert auch, solange keiner mit Remote Desktop drauf ist.

Vielen Dank im Voraus

René

f.siebler 16. Jan 2007 11:37

Re: Programm in Remote-Desktop-Session
 
moin,
das problem kommt ja daher, das die anwendung noch geöffnet ist (In der Terminal Sitzung).... oder? Am besten in den Prozessen nach der eigenen Anwendung suchen, und wenn sie öfter als 1x vorhanden ist die andren Prozesse benachrichtigen...
viele grüße

smudo 16. Jan 2007 11:44

Re: Programm in Remote-Desktop-Session
 
Aber wie könnte man das am Besten mit Delphi lösen?
Ich möchte ja nicht den Benutzer mit solchen Aufgaben belasten, das sollte das Programm schon selbst hinbekommen.

f.siebler 16. Jan 2007 11:48

Re: Programm in Remote-Desktop-Session
 
naja du wirst dem benutzer das das programm noch offen hat ja wohl kaum die Anwendung unterm hintern wegreißen können...
du kannst es ja mit einem timer versuchen wenn der erste versuch nicht erfolgreich war. und dann halt alle 5 min schauen ob es jetzt klappen könnte oder so....

mkinzler 16. Jan 2007 11:58

Re: Programm in Remote-Desktop-Session
 
Du könntest die Umgebungsvariable auswerten.

smudo 16. Jan 2007 12:02

Re: Programm in Remote-Desktop-Session
 
Ich wills ja nicht unterm Hintern wegreißen.
Zum Ersten würde mir reichen, wenn ich dem User, der das Update versucht, eine entsprechende Meldung ausgeben könnte.
Noch besser wäre eine Meldung an alle Remote-Sessions, dass das Programm geschlossen werden soll.

@mkinzler: Was könnte ich da auswerten?

f.siebler 16. Jan 2007 12:23

Re: Programm in Remote-Desktop-Session
 
daher ja mein vorschlag bei den aktiven prozessen zu schauen... da siehst du ja wer das programm noch offen hast, und kannst an den prozess eine msg schicken... die winapi bietet da so einiges.... :-)
schau sonst mal in der "Code-Library" da sollte was zu finden sein....

gruß
fabian

Michael Habbe 16. Jan 2007 13:37

Re: Programm in Remote-Desktop-Session
 
Wenn Du in einer Remotedesktopsitzung drin bist, ist die Umgebungsvariable "CLIENTNAME" gesetzt. Gib mal in einer CMD "set" ein, dort bekommst die verfügbaren Werte.

Und hier mal die Funktionen:

Delphi-Quellcode:
// Name der eigenen Maschine, bei Terminal dort, wo das Programm ausgeführt wird
function GetMyComputerName: string;
var
  c: array[0..127] of Char;
  i: dword;
begin
  i:= SizeOf(c);
  GetComputerName(c,i);
  result:=c;            
end;

// Name des Clients bei Terminalverbindungen
function GetMyClientName:String;
begin
  result := SysUtils.GetEnvironmentVariable('CLIENTNAME');
end;
Im Zweifel schaust Du nach, ob die beiden Werte verschieden sind, dann weisst Du, wo Du Dich befindest.

mfg
Michael

smudo 16. Jan 2007 15:11

Re: Programm in Remote-Desktop-Session
 
Zitat:

Zitat von Michael Habbe
Wenn Du in einer Remotedesktopsitzung drin bist, ist die Umgebungsvariable "CLIENTNAME" gesetzt. Gib mal in einer CMD "set" ein, dort bekommst die verfügbaren Werte.

Das ist schon mal sehr interessant. Damit bekomme ich aber nur heraus, was meine eigene Sitzung betrifft. Ich kann aber nicht ermitteln, ob mein Programm noch in anderen Sessions läuft.

Zitat:

Zitat von f.siebler
die winapi bietet da so einiges....

Hast du vielleicht ein paar Tipps, welche das Suchen erleichtern?

f.siebler 16. Jan 2007 15:14

Re: Programm in Remote-Desktop-Session
 
http://www.delphipraxis.net/internal...hlight=process


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