![]() |
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é |
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 |
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. |
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.... |
Re: Programm in Remote-Desktop-Session
Du könntest die Umgebungsvariable auswerten.
|
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? |
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 |
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:
Im Zweifel schaust Du nach, ob die beiden Werte verschieden sind, dann weisst Du, wo Du Dich befindest.
// 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; mfg Michael |
Re: Programm in Remote-Desktop-Session
Zitat:
Zitat:
|
Re: Programm in Remote-Desktop-Session
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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