WindowSwitcher

  • Grüß euch!
    Ich bin dabei, ein Fußpedal (mit der PAUSE-Taste verbunden) einzusetzen, um zwischen den aktiven Fenstern zu wechseln. Leider funktioniert mein Code zum Weiterschalten von mehr als 1em Fenster (ich drücke 2x aufs pedal->send(alt+tab+tab) nicht. Man gelangt dann wieder zum vorherigen Fenster.

    Code
    [autoit]

    $tim = TimerInit ();zum globalen definieren (ich weiß...)
    HotKeySet ("{pause}", "tab1")

    [/autoit] [autoit][/autoit] [autoit]

    Func tab1()
    $tim = TimerInit ()
    Send ("{altdown}{tab}")
    HotKeySet ("{pause}", "tab2")
    Do
    Until TimerDiff ($tim) > 600
    HotKeySet ("{pause}", "tab1")
    Send ("{altup}")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func tab2()
    Send ("{tab}")
    $tim = TimerInit ()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    WEnd

    [/autoit]


    bitte helft mir! Der Code ist sicher auch für euch nützlich (wenn er funktionieren würde)

    lg tobi

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

    Einmal editiert, zuletzt von tobi_girst (29. September 2012 um 16:51)

  • Nun eigentlich müsste es gehen (kanns gerade nicht austesten mangels Windows ;) ). Ich würde dir aber schon mal empfehlen bei deinen beiden Schleifen noch ein Sleep() reinzumachen. Sonst lastest du den Prozessor ziemlich aus. Hast du schon mal versucht das Ganze ohne HotKeys zu machen, sprich nur das?

    Spoiler anzeigen
    [autoit]

    Send("{ALTDOWN}")
    Send("{TAB}")
    Send("{TAB}")
    Send("{ALTUP}")

    [/autoit]


    Wenn das geht weiss ich auch nicht weiter. Du könntest es aber auch einfach so machen:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{PAUSE}", "tab")

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func tab()
    Send("{ALT}{TAB}")
    EndFunc

    [/autoit]


    Das müsste doch eigentlich schon reichen oder nicht?

    Gruss Shadowigor

  • Danke erstmal Shadowigor. Ich habe den 1. Code natürlich schon probiert und er geht. Der Zweite funktioniert überhaupt nicht (was soll der eigentlich machen?) Ich glaube, das Problem liegt bei dem switchen der Hotkeyfunktion.
    lg
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Edit: ich habe jetzt alles mit _isPressed nachprogrammiert. Es hakt, wenn man mehr als 2 Fenster umschalten will. Ich verzweifle langsam!

    Code
    [autoit]

    #include <Misc.au3>
    While 1
    If _IsPressed ("13") Then
    Send ("{altdown}{tab}")
    $tim = TimerInit ()
    Do
    If _IsPressed ("13") Then
    Send ("{tab}")
    $tim = TimerInit ()
    EndIf
    Until TimerDiff ($tim) > 600
    Send ("{altup}")
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

    Einmal editiert, zuletzt von tobi_girst (26. September 2012 um 15:44)

  • Beim 2. Code dacht ich, dass die ALT-Taste ja nicht zwingend gedrückt bleiben muss um das Fenster zu wechseln. Dort sollte er einfach bei jedem Pedaldruck zum nächsten Fenster springen. Erstaunt mich ein wenig, dass das nicht funktionieren soll. Zu deiner _IsPressed Variante: 1. Hast du wieder keine Sleeps() reingemacht :pinch: und 2. Musst du noch unterscheiden ob du 2 mal drückst oder nur 1 mal lange. Ich zeig dir wohl besser was ich meine ;)

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(10)
    If _IsPressed ("13") Then
    Send ("{ALTDOWN}{TAB}")
    While _IsPressed("13")
    Sleep(10)
    WEnd
    $tim = TimerInit ()
    Do
    If _IsPressed ("13") Then
    Send ("{TAB}")
    While _IsPressed("13")
    Sleep(10)
    WEnd
    $tim = TimerInit ()
    EndIf
    Sleep(10)
    Until TimerDiff ($tim) > 600
    Send ("{ALTUP}")
    EndIf
    WEnd

    [/autoit]


    Aber sonst müsste es eigentlich gehen.

  • Ich verstehe. Die While-schleifen habe ich selbst auch bereits eingebaut; dann lässt sich aber überhaupt nur noch 1 Fenser weiterschalten. Die Sleeps wollte ich erst einbauen, wenn das Skript fertig ist
    Ich bin am verzweifeln! ich bin mir ziemlich sicher, mein/unser code stimmt!
    gibt es einen anderen Weg, durch die Fenster zu schalten als AltTab? (ein Au3-Skript vlt?)
    lg

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

  • chesstiger: habe mich sofort auf WinList gestürzt. Ich bin jetzt bei dem Problem, dass auch der STart-knopf und die Sidebar gadgets sichtbar sind.(isvisible)
    Ich habe herausgefunden, dass ProgMan-Handles 0x00100?? sind und Sidebar MEIST 0x00101??. aber nicht immer: das CPU-Widget hat 2 Handles: eines davon hat 0x00200??. Ein anderes Gadget hat zB 0x01203?? uswusf.
    Ich wüsste deswegen gern eine Methode, um die Class (AU3WinInfo) auszulesen: Kennt den jemand?

    edit: weder _WinAPI_GetClassName() noch WinGetClassList () geben für Gadgets "SideBar_HTMLHostWindow" zurück.

    lg und danke für eure bisherigen mühen!!!

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

    Einmal editiert, zuletzt von tobi_girst (26. September 2012 um 18:38)

  • Plötzliche Eingebung: Wenn ich {altdown} sende, und die {pause}-Taste am Pedal sende, wird daraus !{pause}. Deswegen stimmt der Hotkey nicht mehr und es lässt sich nicht bedienen. Ich Koffer.
    danke, chessiger und shadowigor!

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)