WinGetState() von RDP-Fenster

  • Hallo Leute,
    ich hab einen seltsamen Effekt: Wenn ich mit WinGetState den Status von Einem RDP-Fenster erfrage erhalte ich 7 zurück. Also
    1 = Window exists
    2 = Window is visible
    4 = Window is enabled
    ...
    Oder sollte es minimiert sein, dann logischerweise 23, aber keine Angabe über maximiert (7+32). Vielleicht weil es sich beim RDP-Fenster um ein besonderes handelt? Wie auch immer, hat jemand dazu eine Idee?

    danke

  • sorry, war nicht eindeutig. Das Fenster ist maximiert und wenn ich den Status erfrage, erhalte ich lediglich 7, nicht 7+32. Wenn das Fenster minimiert ist klappts, aber nicht wenns maximiert ist.

  • setz mal die Option:

    [autoit]

    Opt("WinTitleMatchMode", 2)

    [/autoit]


    an den Anfang und schau nach, was als "Fenstername im Vollboildmodus noch übrig bleibt.
    I.d.R. die IP-Adresse ...
    Diese setzt Du dann in WinGetState("IP-Adresse") ein

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Tolle Idee, aber das ist nicht das Problem. Der Fenstername des RDP-Fensters bleibt, trotz maximieren, gleich, auch wenn nur die IP angezeigt wird. Ich habe aber ohnehin über dessen $handle das Fenster abgefragt. Ist das Fenster zur Abfragezeit maximiert und zusätzlich aktiv, so erhält man lediglich 15 (1+2+4+8 ), statt 47 (1+2+4+8+32). Sehr seltsam.

  • nachdem ich selbst mit RDP-Fenstern arbeite
    und diese auch im Status abfrage und sehr wohl den Status 47 erhalte,
    wird uns in Deinem Fall nur Dein Script weiterhelfen, damit wir zu einer Lösung kommen.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ich habs mal extrahiert und reproduziert:

    Code
    Opt("WinTitleMatchMode", 3) ; exakter Titel
    
    
    sleep(4000)
    $winName = "TS-KUMO - 192.168.42.4 - Remotedesktop"
    $handle = WinGetHandle($winName)
    $state = WinGetState($handle)
    
    
    MsgBox(4096,"",$state)

    Ergebnis, als Normalfenster und aktiv: 15
    Ergebnis, wenn maximiert und aktiv: 15
    Ergebnis, wenn maximiert und nicht aktiv (getestet im Doppelmonitorbetrieb): 7
    Ergebnis, wenn minimiert: 23

  • probier mal so, da Du im Vollbild die MsgBox ja nicht sehen kannst ...
    Lass das Script mal im Hintergrund laufen, wenn Du die mstsc am Laufen hast.

    Spoiler anzeigen
    [autoit]

    Opt("WinTitleMatchMode", 2)
    While 1
    ConsoleWrite(WinGetState("192.168.42.4") & @CRLF)
    Sleep(1000)
    WEnd

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • So unglaublich wie es auch scheinen mag: hier ist das Ergebnis (ohne Manipulation ;) )
    0
    0
    15 -> Sitzung gestartet (Fenster)
    15
    15
    15
    15
    15 -> ungefähr hier Maximiert
    15
    15
    15
    15 -> ungefähr hier wieder zu Fenster
    15
    15
    15
    7 -> Die Console hervorgeholt, um die Doku zusehen
    7
    7
    7
    15 -> wieder Vollbild
    15
    15
    15
    15
    15
    23 -> aus dem Vollbild heraus, minimiert
    23
    23
    23
    15 -> wieder hervor geholt (immer noch maximiert)
    15
    15
    15 -> ungefähr hier zu Fenster
    15
    7 -> Zur Ausgabeconsole
    7
    7
    -> Schleife beendet

    Ich hab vorher schon ordentlich den Fehler reproduziert, es muss an dem liegen, was die Windowsfunktionen zurückliefern. Kann man die AutoIt-Funktion WinGetState sich anschauen?

  • jetzt musst Du wohl mal die Hosen runter lassen und uns
    (zumindest in einem funktionstüchtigen Teil)
    Dein Script zeigen. Ich verwende wie gesagt selber Win XP SP3 und habe keine Probleme.
    Schreib mal noch die Version Deiner mstsc.exe dazu ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • ich hab nichts zu verbergen, das bereits gepostete Codebeispiel, sowohl von Schnuffel, als auch von mir hab ich in einem "ungeschriebenen Blatt" getestet. Die RDP hab ich von Hand gestartet. Sonst hat da nichts dazwischen gefunkt. Das Ergebnis hab ich am Samstag, 26. Juni 2010, 17:32 gepostet. Das Problem liegt vermutlich an meinem System oder an der mstsc.

    Ich hab den 6er-Client. Wie kann ich die Version der mstsc.exe herausbekommen?

    Danke