Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Remotedesktop (https://www.delphipraxis.net/88236-remotedesktop.html)

SaFu 13. Mär 2007 09:12

Re: Remotedesktop
 
Das Programm auf PC2 wird ja nicht beendet sondern es wird auf das Anmelde Fenster zurück gesetzt

Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
var pt: TPoint;
begin
  if MessageDlgPos('Wollen sie sich wirklich Abmelden? ',mtInformation,[mbYes,mbNo],0,300,200) = mrYes then
    begin
      Form1.Show;
      Form2.Close;
       begin
          pt := Point( Width + 300, Top + 100);
          Mouse.CursorPos := ClientToScreen(pt)
        end;
     end;
end;
hier müsste jetzt noch was rein um die Remoteverbindung zu beenden.

Phoenix 13. Mär 2007 11:55

Re: Remotedesktop
 
Was denn nun? Willst Du die Verbindung oder die Session beenden?

Wenn Du nur die Verbindung kappst läuft die Session auf dem Server weiter (blockiert in der Regel eine CAL) und kann wieder verbunden werden beim nächsten Connect. Im zweiten Fall wird der User sauber abgemeldet und die Verbindung dann gekappt.

SaFu 13. Mär 2007 14:37

Re: Remotedesktop
 
Zitat:

Zitat von Phoenix
Was denn nun? Willst Du die Verbindung oder die Session beenden?

Wenn Du nur die Verbindung kappst läuft die Session auf dem Server weiter (blockiert in der Regel eine CAL) und kann wieder verbunden werden beim nächsten Connect. Im zweiten Fall wird der User sauber abgemeldet und die Verbindung dann gekappt.

Eigentlich einfach die Verbindung Trennen so das Ich an PC1 von dem aus die Verbindung erstellt wurde weiter Arbeiten Kann

sh17 13. Mär 2007 14:49

Re: Remotedesktop
 
Zitat:

Zitat von fuknersascha
Eigentlich einfach die Verbindung Trennen so das Ich an PC1 von dem aus die Verbindung erstellt wurde weiter Arbeiten Kann

Das geht auch, indem Du das RemoteDesktop-Fenster beseite schiebst. ;-)

Gemeint ist, ob die Sitzung wo Dein Programm läuft (PC2) beendet werden soll, also es soll sich abgemeldet werden (Start -> Abmelden).

Wenn ja, dann mach dies doch einfach vom Programm aus (Hab den Aufruf jetzt nicht bei der Hand).

SaFu 14. Mär 2007 10:39

Re: Remotedesktop
 
Das Problem bei der sache ist halt das die Maus beim Abmelden des Programms aus einen anderen Bildschirm gesetzt wird wie man oben sieht.
Die muss da auch bleiben, wenn ich die Remoteverbindung jetzt beenden will müsste ich ja wieder die maus bewegen um den schließen Button der Remoteverbindung zu betätigen und somit wäre die maus wieder auf dem Monitor wo sie nicht sein darf, deshalb wurde ich gerne beim Abmelden die Remoteverbindung beenden. Habe aber noch nichts gefunden womit ich das realiesieren könnte

sh17 14. Mär 2007 10:49

Re: Remotedesktop
 
Ich kapier es nicht. Welche Maus muss wo sein? Was seh ich oben?

Du baust in Dein Programm auf PC2 einen Button ein, der sich vom Windows in der Remotesitzung abmeldet. Die Sitzung wird beendet und die Verbindung getrennt. Nix mit Schliessen-Button

SaFu 14. Mär 2007 10:50

Re: Remotedesktop
 
Richtig in meinem Proramm auf PC2 Soll über einen Button in meinem Programm die Remoteverbindung getrennt werden.

sh17 14. Mär 2007 11:03

Re: Remotedesktop
 
:thumb: na dann, WinAPI-funktion gesucht und frisch ans Werk

http://www.delphipraxis.net/internal_redirect.php?t=56

SaFu 14. Mär 2007 15:43

Re: Remotedesktop
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ein ganz netter Beitrag abr der Funktioniert nicht so ganz wie ich das Brauch

Hab da was gefunden und auch schonmal was Probiert, das aufrufen klappt wunderbar wie vorher auch aber kann mir jemand sagen wie ich den Prozess killen kann.

Hab es unten mal angehängt. ich glaube das geht schon so in die Richtung.

Delphi-Quellcode:

procedure KillProcess(hWindowHandle: HWND);
var
  hprocessID: INTEGER;
  processHandle: THandle;
  DWResult: DWORD;
begin
  SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
    SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

  if isWindow(hWindowHandle) then
  begin
    // PostMessage(hWindowHandle, WM_QUIT, 0, 0);

    { Get the process identifier for the window}
    GetWindowThreadProcessID(hWindowHandle, @hprocessID);
    if hprocessID <> 0 then
    begin
      { Get the process handle }
      processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
        False, hprocessID);
      if processHandle <> 0 then
      begin
        { Terminate the process }
        TerminateProcess(processHandle, 0);
        CloseHandle(ProcessHandle);
      end;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  KillProcess(FindWindow('mstsc',nil));
end;

Remko 14. Mär 2007 16:49

Re: Remotedesktop
 
Yes, if you can Disconnect or Logoff a session if you know (or obtain) the SessionID.
See MSDN-Library durchsuchenWTSDisconnectSession and MSDN-Library durchsuchenWTSLogoffSession. Delphi translations are in JwaWtsApi32 from the Jedi Apilib

Edit: sorry I didn't notice that this was a multipage thread, I was replying to:
Zitat:

Gibt's da nicht auch die entsprechenden APIs für?
from page 1

Edit2: Still after reading the rest of the topic, if you use either WTSDisconnectSession or WTSLogoffSession on the pc the session is running at you can achieve what you want.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 3 von 6     123 45     Letzte »    

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 by Thomas Breitkreuz