Terminalserversitzung in den Vordergrund bringen



  • Hallo,

    ich habe folgende Denksportaufgabe.

    Ich habe ein kleines Tool welches auf einer Windows Terminalserversitzung läuft.

    Dieses Tool soll nun in einem bestimmten Fall dafür sorgen, dass die Terminalserversitzung in den Vordergrund kommt, wenn sie z.B. minimiert oder ein hinteres Fenster ist ( also nicht Toplevel Window ).

    Wenn ich das Tool lokal auf dem Rechner laufen hätte ist das ja kein Problem.

    Gibt es eine Möglichkeit zu erkennen, ob ich mich auf einer TSS befinde ?

    Besten Dank und Grüße...

    BOA


  • Mod

    bIsRemoteSession = GetSystemMetrics (SM_REMOTESESSION);
    


  • Hi Martin,

    ok, vielen Dank.

    Jetzt hat mein Programm die Info, dass es eine Remotesession ist. Diese will ich nun in den Vordergrund schicken.

    Ich habe zwar ein wenig gegooglet, aber bin nicht so richtig weitergekommen.
    Eventuell noch ein kleiner Anstoß, wie das zu realisieren wäre ?`

    Danke und Grüße

    BOA


  • Mod

    Du hast keinen Einfluss auf die Session in der Dein Programm läuft. Und das ist gut so 🙂



  • Hi Martin,

    vielen Dank für die ernüchterne Antwort.

    Wenn ich aber Adminrechte hätte auf der Session, dann ließe sich doch sicher etwas machen.

    Bzw. anders gefragt, was für Rechte bräuchte ich denn, um das zu realisieren, was ich vorhabe ?
    Oder ist es prinzipiell bei einer Remoteverbindung nicht möglich ?

    Grüße und Danke

    BOA


  • Mod

    Nein! Auch dann nicht. Du hast IMHO keinen Einfluß auf den Container der Session.



  • Martin Richter schrieb:

    Nein! Auch dann nicht. Du hast IMHO keinen Einfluß auf den Container der Session.

    Hi,

    danke für die erneute Antwort.

    Das macht ja eigentlich auch wirklich Sinn. Ich bin ja in meiner TS - Session und müßte der lokalen Session irgendwie sagen, dass sie das Fenster maximieren soll.

    Wie soll das gehen ? Ist schon richtig.

    Es wäre so schön gewesen. Ich habe nämlich das Problem, dass ich die Software, die auf der TS - Session läuft überwachen will. Sprich, macht die irgeneinen Mist, will ich das sofort sehen, auch wenn die das TS - Session Fenster minimiert oder im Hintergrund hinter anderen Fenstern versteckt ist. Es soll in den Vordergrund und mit signalisieren, dass etwas schräg läuft...

    Hast Du da eventuell eine Idee ?

    Grüße und Danke

    BOA


  • Mod

    Veranlasse, das die Applikation in der Session eine Email sendet oder eine Aktion anstösst, die Du wirklich überwachen kannst. z.B. über ein Filesystem, oder das Eventlog etc.



  • Hallo Martin,

    da das mit Email nicht so einfach ist, da z.B. der SMTP Port geblockt wird habe ich das nun mit einem Sound gelöst.

    Immer wenn der Fehler in einem Programm auftritt wird ein nerviger Ton abgespielt.

    Das ist insofern von Vorteil, da selbst bei minimierter TS - Sitzung der Ton gespielt wird.

    Ok, vielen Dank noch einmal

    Grüße

    BOA



  • Du kannst zwischen Client und Server per VirtualChannels kommunizieren. Hierzu gibts das WTS-Api. Die Kommunikation erfordert aber auf der Server- und Clientseite entsprechende Komponenten. ( Serverseite reicht eine Applikation, auf dem Client eine DLL die beide in der Registry registriert sein müssen ).

    Doku: http://msdn2.microsoft.com/en-us/library/aa383546.aspx

    Vielleicht hilft es. Bei CodeProject gibts auch ein Beispiel für VirtualChannels.

    Gruß
    tvdog


Anmelden zum Antworten