Frage

Gibt es eine Möglichkeit mein Programm bestimmen kann, wenn es auf einem Remote Desktop (Terminal Services)?

Ich möchte ein „Timeout nach Inaktivität“ auf dem Programm aktivieren, wenn es auf einem Remote-Desktop-Sitzung ausgeführt wird. Da die Benutzer Remote Desktop-Sitzungen berüchtigt sind offen für das Verlassen, möchte ich mein Programm nach einer bestimmten Zeit der Inaktivität kündigen. Aber, ich das Timeout nach Inaktivität nicht will nicht-RD Benutzer freigegeben für.

War es hilfreich?

Lösung

GetSystemMetrics (SM_REMOTESESSION) (wie in http://msdn.microsoft. com / en-us / library / aa380798.aspx )

Andere Tipps

Hier ist der C # -Code verwaltet i verwenden:

/// <summary>
/// Indicates if we're running in a remote desktop session.
/// If we are, then you MUST disable animations and double buffering i.e. Pay your taxes!
/// 
/// </summary>
/// <returns></returns>
public static Boolean IsRemoteSession
{
    //This is just a friendly wrapper around the built-in way
    get
    {
        return System.Windows.Forms.SystemInformation.TerminalServerSession;
    }
}

Die folgenden Werke, wenn Sie über Ihre Anwendung kennen, die in der Sitzung ausgeführt wird:

BOOL IsRemoteSession(void)
{
   return GetSystemMetrics( SM_REMOTESESSION );
}

Aber nicht im Allgemeinen für jeden Prozess-ID.


Wenn Sie über einen beliebigen Prozess kennen, die in jeder beliebigen Sitzung ausgeführt werden könnte, dann können Sie die folgenden Verfahren verwendet werden.

Sie können zunächst den Prozess-ID zu einer Sitzungs-ID konvertieren, indem Aufruf WTSQuerySessionInformation . Sie können WTSInfoClass als Wert WTSIsRemoteSession angeben und dies wird Ihnen die Informationen über, wenn diese Anwendung eine Remote-Desktop-Verbindung ist oder nicht.

BOOL IsRemoteSession(DWORD sessionID)
{
   //In case WTSIsRemoteSession is not defined for you it is value 29
   return WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, sessionID, WTSIsRemoteSession, NULL, NULL);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top