Problem mit WinExists()

  • Hallo,
    ich habe ein kleines Problem mit WinExists. Folgendes: Ich habe hier eine Kinect stehen. Diese Bewegungssteuerung von Microsoft. Dafür gibt ein Programm um Anwendungen jeglicer Art steuern zu können. WinEmote heisst es. Sobald ich die Steuerung mit der Kinect übernehme, erscheint ein Fenster in der Ecke wo ich abgebildet bin. Dieses Fenster möchte ich abfragen ob es existiert - mit folgendem Skript:

    [autoit]

    while 1
    if winexists("KinEmote Streamviewer") Then
    MsgBox(1, "lala", "lala")
    EndIf
    EndIf

    [/autoit]


    Funktioniert auch. Das Problem ist nun, sobald ich den Steuerungsmodus mit der Kinect verlasse und das Fenster wo ich abgebildet bin verschwindet, sagt mir WinExists trotzdem weiterhin, dass das Fenster existiert... Wie kann das sein?

    Hier mal paar Infos über das Fenster von dem infotool von Autoit:

    Spoiler anzeigen

    >>>> Window <<<<
    Title: KinEmote Streamviewer
    Class: WindowsForms10.Window.8.app.0.2bf8098_r16_ad1
    Position: 20, 20
    Size: 251, 159
    Style: 0x16010000
    ExStyle: 0x00050008
    Handle: 0x000404FC

    >>>> Control <<<<
    Class: WindowsForms10.Window.8.app.0.2bf8098_r16_ad1
    Instance: 1
    ClassnameNN: WindowsForms10.Window.8.app.0.2bf8098_r16_ad11
    Name: pictureBoxOverlay
    Advanced (Class): [NAME:pictureBoxOverlay]
    ID: 263422
    Text:
    Position: 0, 0
    Size: 251, 159
    ControlClick Coords: 184, 114
    Style: 0x56000000
    ExStyle: 0x00000000
    Handle: 0x000404FE

    >>>> Mouse <<<<
    Position: 204, 134
    Cursor ID: 0
    Color: 0x757500

    Einmal editiert, zuletzt von Scritch (16. Januar 2012 um 09:28)

  • Servous, evenutell wird das Fenster von der Software nur ausgeblendet, ist aber weiterhin existent
    ähnlich wie bei

    [autoit]

    GuiCtrlSetState($hGUI,@GUI_HIDE

    [/autoit]

    .
    ist das Fenster denn immer im Fokus wenn du etwas bedienst? wenn ja Frag dass doch einfach ab mit

    [autoit]

    WinActive

    [/autoit]

    Gruß Marvin

  • Hallo. Nein, es ist nicht im Fokus. Und das ist auch gut so. Ich wollte damit eine Powerpointpräsentation steuern. Setze ich das Fenster manuell in den Fokus mit WinActivate() kann ich die Präsentation nicht mehr steuern. Dass das Fenster nur ausgeblendet wird, war auch mein erster Gedanke. Komischerweise ist es beim Start von KinEmote selber noch nicht existent.
    Gibt es sonst noch eine Alternative abzufragen, ob die Bewegungssteuerung aktiviert wurde/ist?

  • Was Spricht dagegen einfach einen Hotkey zu setzen zb F9 für AN und F10 für Aus :) tut doch auch keinen Abbruch

    Gruß Marvin

  • Schau mal ob das Fenster einen eigenen Prozess hat. Wenn ja kannst es mit

    [autoit]

    ProcessExists

    [/autoit]

    versuchen.


    Hat zwar nichts mit deine Prob zu tun, aber hast mal eine Link zu der Software, würde mich sehr interessieren.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Wenn das Fenster noch existiert, aber nur ausgeblendet ist, (wie Protex erwähnte), dann solltest Du mit WinGetState weiterkommen.
    Du kannst z.B. prüfen, ob das Fenster sichtbar ist...!
    Gruss Veronesi