AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Programm in Remote-Desktop-Session
Thema durchsuchen
Ansicht
Themen-Optionen

Programm in Remote-Desktop-Session

Offene Frage von "smudo"
Ein Thema von smudo · begonnen am 16. Jan 2007 · letzter Beitrag vom 16. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 12:08
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é
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 12:37
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
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 12:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 12:48
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....
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 12:58
Du könntest die Umgebungsvariable auswerten.
Markus Kinzler
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 13:02
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?
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 13:23
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
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 14:37
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
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 16:11
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 von f.siebler:
die winapi bietet da so einiges....
Hast du vielleicht ein paar Tipps, welche das Suchen erleichtern?
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Programm in Remote-Desktop-Session

  Alt 16. Jan 2007, 16:14
http://www.delphipraxis.net/internal...hlight=process
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:31 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