Wiimote am PC kleines Programm

  • Servus
    ich muss mir ein kleines Programm für meine Wiimote schreiben damit ich meine Maus komplett ersetzen kann.
    Hierzu muss vom Systemstart an das Programm Glovepie geladen werden dieses muss ein Script öffnen und auf Run gesetzt werden.

    Desweiteren muss die Bluetooth erkennung gestartet werden.

    Folgendermaßen hab ich mir das vorgestellt:

    Bluetooth erkennung starten ok klicken zum device suchen
    device gefunden -> Glovepie wird gestartet und minimiert bluetooth fenster wird geschlossen
    Device nicht gefunden zweites mal ok erforderlich somit restart des programms bis das gerät erkannt wurde.

    also wie kriege ich dass hin das glovepie eine datei öffnet und dann sobald es die datei hat die run taste startet? muss doch irgendwie mit autoit funktionieren.

    und wie kann ich abfragen ob ok ein zweites mal erscheint?


    hab zwar schon was gemacht is aber aus batch und autoit zusammen gebastelt und nicht so toll. könnt ihr mit helfen?

  • Hallo!

    Ich erlaube mir mal, zwischen den Zeilem zu zitieren :D

    Bluetooth erkennung starten


    Machst du über Run() oder ShellExecute()

    ok klicken zum device suchen


    Warte auf das Fenster mit WinWait, dann ControlClick("Fenstertitel", "", "&OK")

    device gefunden -> Glovepie wird gestartet


    Wieder Run bzw. ShellExecute

    und minimiert bluetooth fenster wird geschlossen


    Machst du mit WinClose oder WinKill

    Device nicht gefunden zweites mal ok erforderlich somit restart des programms bis das gerät erkannt wurde.


    Baue eine Schleife mit Do...Until. Als Schluss-Bedienung nimmst du einfach, dass das Device gefunden wurde. Also WinWait("Erfolgsmeldung") oder so...

  • problem ist dass das fenster wo das bluetooth gesucht wird und das untergeordnete fenster vom bluetooth start den selben namen haben. sprich mit wait is nix.

  • Dann mach

    [autoit]

    winwait('fenstertitel','text im fenster')

    [/autoit]

    oder so ähnlich

    MfG. tobi_girst

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

  • werds mal probieren. wie mach ich eigentlich if abfragen? zb if fenster blabla geschlossen then fenster blabla öffnen?

    habs mal so gemacht. das OK von dem Text wäre eigentlich in "" gesetzt aber dass geht ja net erkennt er dass trotzdem?
    er drück auch nicht weiter. sprich das programm öffnet sich und nix mehr.

    Code
    run ("C:\Programme\Toshiba\Bluetooth Toshiba Stack\ECCenter.exe 1001")
    winwait ("Bluetooth-Einstellungen","Bereiten Sie die Verbindung mit einem Remote-HID vor und klicken Sie auf OK")
    controlclick ("Blutooth-Einstellung","Bereiten Sie die Verbindung mit einem Remote-HID vor und klicken Sie auf OK","&OK")

    Einmal editiert, zuletzt von yamaharacer (15. März 2009 um 12:16)

  • habs auch schon so probiert:

    Code
    run ("C:\Programme\Toshiba\Bluetooth Toshiba Stack\ECCenter.exe 1001")
    winwait ('Bluetooth-Einstellungen','Bereiten Sie die Verbindung mit einem Remote-HID vor und klicken Sie auf "OK".')
    controlclick ('Blutooth-Einstellung','Bereiten Sie die Verbindung mit einem Remote-HID vor und klicken Sie auf "OK"','&OK')

    aber immer das gleiche es öffnet sich das programm im vorderen fenster die meldung die ich mit ok bestätigen soll aber er macht nix.

  • Vielleicht ist der Button &OK falsch...
    _
    probiers mal so.
    _
    1. Starte C:\Programme\AutoIt3\Au3Info.exe
    2. Dann führe dein Skript aus
    3. Fokusiere das Fenster indem der Button geklickt werden soll
    4. Lass dir anzeigen welcher Button das ist ^^
    _

    [autoit]

    ControClick('Blutooth-Einstellung','Bereiten Sie die Verbindung mit einem Remote-HID vor und klicken Sie auf "OK"', "Button2") ; Button2 mit dem wirklichen Namen ersetzen

    [/autoit]
  • also ich habe autoit info geöffnet und fahre dann über meine anwendung sprich diesen OK Button oder wie? Weil wenn ich das tue steht da nur Button mehr nicht.

    was ich komisch finde wenn ich den text aus der box weg lasse dann drückt er mir auf ok aber erst spät so 5-10sekunden nachdem ich das skript gestartet habe. brauche aber den text zur erkennung der boxen.

    Einmal editiert, zuletzt von yamaharacer (15. März 2009 um 14:03)

  • Du öffnest das AutoIt Window-Info Tool, dann nimmst du dieses Kreuz aus dem Finder-Tool, und führst es per Drag&Drop auf den Button.

    Dannn unter dem Reiter Control den Text rauskopieren!

    Die ID kann unterschiedlich sein!

  • ok hab das problem entdeckt der text war die ganze zeit falsch. jetzt funktioniert dass schon mal nun gibt es aber ein weiteres problem.
    ich bin jetzt soweit:

    Code
    run("C:\Programme\Toshiba\Bluetooth Toshiba Stack\ECCenter.exe 1002")
    winwait ('Bluetooth-Einstellungen', 'OK')
    ControlClick('Bluetooth-Einstellungen','OK', "Button1")
    Sleep (10000)
    If Winwait ('Bluetooth-Einstellungen', 'OK') then ControlClick ('Bluetooth-Einstellungen','OK', "Button1")
    	winclose ("Bluetooth-Einstellung","")

    wenn nun im letzten schritt das programm beendet werden soll kommt dauernd der fehler dass das programm ein fehler festgestellt hat und beendet werden muss. wenn ich es aber von hand schließe ist das nicht nur mit autoit. hat da einer ne lösung für?

    genauso will ich nun dass ganze als schleife haben wie bewerkstellige ich das?

  • Also, als erstes würde ich am Anfang mit @ProgeamFilesDir arbeiten, da dein Programm unter Vista schon mal nicht laufen wird :)

    Dazu hätte ich jetzt keine Idee, versuche es doch mal über MouseClick(), kommen die gleichen Fehler?

    Oder hast du vllt. ein Häkchen oder so übersehen?

    Noch ein Tipp! Setze AutoIt-Code am besten immer zwischen die BB-Code-Tags

    Code
    [autoit] und [/autoit]

    , dann läuft die Syntaxervorhebung besser :D

  • also sieht nun so aus:

    Code
    run("C:\Programme\Toshiba\Bluetooth Toshiba Stack\ECCenter.exe 1002")
    winwait ('Bluetooth-Einstellungen', 'OK')
    ControlClick('Bluetooth-Einstellungen','OK', "Button1")
    Sleep (10000)
    If Winwait ('Bluetooth-Einstellungen', 'OK') then ControlClick ('Bluetooth-Einstellungen','OK', "Button1")
    	winclose ('Bluetooth-Einstellung')
    	Winwait ('ECCenter.exe')
    	Controlclick ('ECCenter.exe','&Nicht senden', 'Button1')

    ich brauch noch ein else befehl weiß aber nicht wie ich den einbauen soll. sprich nach sleep wenn das fenster danach nicht erscheint soll sich glove pie öffnen nur wie baue ich das ein?
    und eben wie schaffe ich es dass daraus ne schleife wird?

    Benutze XP is für mich irelevant werde auch nie vista benutzen is ein alter rechner auf dem das ganze laufen soll.

  • so also noch ein letztes mal nerven.
    hab jetzt den text soweit ich es gerne hätte fertig. bis eben auf die schleife wenn er bei beim letzten schritt angelangt ist soll er neu starten sprich von vorne beginnen. außer glovepie ist offen dann nicht wie realisiere ich dass hier mein code:


    würde es gerne heute noch hinbekommen danke schon mal.

  • Also für das Exit machste ne if abfrage... If ProcessExists("...") Then Exit

    Oder WinExists oder WinActive wie auch immer kenne das programm nicht genau deswegen. Könntest auch nen WinWait mit einem TimeOut einbauen

  • was willst du denn restarten ??? wenn es in der while schleife ist, dann fängt er oben wieder an

  • eben dass macht er nicht er schließt zwar dass programm aber öffnet es nicht mehr sprich er geht nicht vom letzten wieder in den ersten schritt.

  • Ich würde einfach Am Anfang Do und am Ende Until WinExists("Fenstertitel")

    Heißt er durchläuft die Schleife so oft, bis das Fenster existiert.