Nach drücken von STRG(rechts) eine bestimmte Mausposition anklicken

  • Welche AutoIt-Version nutzt du?
    Update bitte ggf. auf 3.3.0.0.

    peethebee

    hi pee...

    AutoIt v3.3.0.0 vom 24th December, 2008

    Daran kanns nicht liegen. Die Datei ist auch vorhanden und korrekt benannt. Mhhh ... komisch.
    Naja nicht ganz so wichtig, wäre halt ganz nett gewesen wenns funzt :)

    Was meinste überhaupt zu den beiden sound versionen?
    Hier nochmal beide versionen ... welche ist die bessere bezüglich des sounds?

    Version1:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #include <Sound.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If WinActive("MAGIX Video") Then
    If _IsPressed("A3", $dll) Then
    $pos = MouseGetPos()
    MouseClick("left", 1595, 390, 1, 0)
    MouseMove($pos[0], $pos[1], 0)
    $sound = _SoundOpen(@WindowsDir & "\media\Windows-Standard.wav", "Windows-Standard")
    _SoundPlay($sound, 0)
    _SoundClose($sound)
    Sleep (1000)
    EndIf
    EndIf
    Sleep (50)
    WEnd

    [/autoit]

    Version2:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #include <Sound.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If WinActive("MAGIX Video") Then
    If _IsPressed("A3", $dll) Then
    $pos = MouseGetPos()
    MouseClick("left", 1595, 390, 1, 0)
    MouseMove($pos[0], $pos[1], 0)
    SoundPlay(@WindowsDir & "\media\Windows-Standard.wav",0)
    Sleep (1000)
    EndIf
    EndIf
    Sleep (50)
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von eugen723674 (10. April 2009 um 01:32)

  • Hallo Eugen,

    Die bisherigen Versionen funktionieren bei mir nicht, dafür aber das Beispiel in der deutschen Hilfe

    Spoiler anzeigen
    [autoit]

    #include <Sound.au3>

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

    ; Öffne Sound-Datei
    $sound = _SoundOpen(@WindowsDir & "\media\notify.wav", "Notify")
    If @error = 2 Then
    MsgBox(0, "Fehler", "Die Datei existiert nicht.")
    Exit
    ElseIf @error = 3 Then
    MsgBox(0, "Fehler", "Der Aliasname ist ungültig.")
    Exit
    ElseIf @extended <> 0 Then
    $extended = @extended ; Zuweisung, weil @extended nach DllCall-Aufruf geändert wird
    $stText = DllStructCreate("char[128]")
    $errorString = DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $extended, "ptr", DllStructGetPtr($stText), "int", 128)
    MsgBox(0, "Fehler", "Öffnen fehlgeschlagen." & @CRLF & "Fehlernummer: " & $extended & @CRLF & "Fehlerbeschreibung: " & DllStructGetData($stText, 1) & @CRLF & "Beachte: Möglicherweise kann der Sound dennoch korrekt abgespielt werden.")
    Else
    MsgBox(0, "Erfolgsmeldung", "Die Datei wurde erfolgreich geöffnet.")
    EndIf
    _SoundPlay($sound, 1)

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

    _SoundClose($sound)

    [/autoit]

    ich hoffe das klappt bei dir auch,

    mfg (Auto)Bert

  • Ahhhh !!!

    Bert du bist die Rettung ;)
    Bzw hast du dazu beigetragen, dass ich jetzt weiss wieso die anderen Versionen nicht funktionieren KONNTEN!

    Ich hab nämlich das Beispiel aus der Hilfe auch mal 1:1 benutzt und es GING!
    Ich wunderte mich nur darüber das es ging, da ich gar keine notify.wav unter /media hatte!!!

    Schaut euch das Bild mal an (und bedenkt das ich "Dateiname" erst jetzt aktiviert habe)
    und dann wisst ihr wieso es trotzdem ging und wieso die anderen 2 Lösungen gar nicht gehen konnten ;)

    Funktioniert jetzt also alles 100% und super, genau so wie ich es wollte - danke an alle!

    Mich würde nur noch Interessieren was die Pro's vorschlagen welche Version (siehe vorletzter Post) denn jetzt der "richtige"/bessere Ansatz ist.

  • Hallo Eugen,

    freut mich das ich helfen konnte, hab mir damit anscheinend meine Hochstufung zum Lernenden (*) verdient zumindest fällt es mir das 1. Mal auf. Danke @Moderatoren

    mfg (Auto)Bert

  • Hallo Bert!

    Nunja, ich glaube kaum, dass dein Forumsstatus von der Willkür eines Mods abhängt...
    ... wohl eher von der Anzahl der von dir erstellten Postings und ich gehe davon aus das du schon seit deinem 50. Post ein Lernender bist ;)

    • Offizieller Beitrag

    Mich würde nur noch Interessieren was die Pro's vorschlagen welche Version (siehe vorletzter Post) denn jetzt der "richtige"/bessere Ansatz ist.

    Zum abspielen von solchen kurzen (Windows-)Sounds würde ich immer SoundPlay benutzen.
    Allerdings würde ich das etwas ändern:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>
    #include <Sound.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If WinActive("MAGIX Video") Then
    If _IsPressed("A3", $dll) Then
    $pos = MouseGetPos()
    MouseClick("left", 1595, 390, 1, 0)
    MouseMove($pos[0], $pos[1], 0)
    SoundPlay(@WindowsDir & "\media\Windows-Standard.wav", 1)
    EndIf
    EndIf
    Sleep(50)
    WEnd

    [/autoit]


    Also mit ",1" am Ende, sodass SoundPlay auf das Abspielende wartet. Das spart Dir in diesem Fall das anschließende Sleep.