Hotkeyset und Variable $Button

  • Hi ;)
    Könnt ihr mir mal verraten, wie man einen $Button mit einem Hotkey wie z.B. F1 drücken kann?
    LG =P

    Einmal editiert, zuletzt von Hen_xD (18. Oktober 2010 um 14:20)

  • wie meinst du das genau?

    möchtest du mit dem hotkey eine funktion aufrufen?

    wenn ja schau dir mal HotKeySet
    ( "key" , "function")
    an

    bsp:

    [autoit]

    HotKeySet("{F4}", "_StarteFunktion")

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

    Func _StarteFunktion()
    MsgBox(0, "Key gedrückt", "Du hast F4 gedrückt")
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von ophiel (7. September 2010 um 18:36)

  • Ich möchte mit dem Hotkey einen Knopf, den ich mit dem Koda erstellt habe drücken...
    das heißt, dass ich zB dann mit F1 "ok" oder "abbrechen" drück...
    hoffentlich hast du es verstanden :D

  • Also einen Button zu drücken, ist komplizierter, als wenn du eine Funktion ausführen lässt, die entweder von dem Button oder von dem Hotkey gesetzt wird. Oder du machst folgendes:
    Shortcut ist Strg + F1 ;)


    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Test = GUICreate("Test", 514, 321, 192, 124)
    $Button = GUICtrlCreateButton("Dein Button", 188, 124, 137, 73, $WS_GROUP)
    GUISetState(@SW_SHOW)
    Dim $Test_AccelTable[1][2] = [["^{F1}", $Button]]
    GUISetAccelerators($Test_AccelTable)

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

    While 1

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

    Switch GUIGetMsg()

    Case $GUI_EVENT_CLOSE
    Exit

    Case $Button
    msgbox(0,"Test","Läuft ;)")

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

    EndSwitch
    WEnd

    [/autoit]

    lg Tim

  • Dim $Test_AccelTable[1][2] = [["^{F1}", $Button]] GUISetAccelerators($Test_AccelTable)

    Okay...danke und wie mach ich es wenn ich mit mehreren Hotkeys (F1 - F10) mehrere Knöpfe drücken will($1 - $10)?

  • Ich würde sagen das es mit einer Funktion wirklich einfacher ((besser)) geht.

    Finde ich persöhnlich :D

    Edit: Meinst du jezt mit jedem key einen anderen button/funktion oder in kombination bestimmter keys einen button/funktion ?

  • Ich würde sagen das es mit einer Funktion wirklich einfacher ((besser)) geht.

    Finde ich persöhnlich :D

    Edit: Meinst du jezt mit jedem key einen anderen button/funktion oder in kombination bestimmter keys einen button/funktion ?

    mit jedem key einen anderen Button ;=)
    Also wenn ich F1 drück wird $1 gedrückt...usw ;)
    Wie würdest du es denn dann als funktion schreiben mit so vielen Keys und Buttons?

  • [autoit]

    HotKeySet("{F4}", "_StarteFunktion1")
    HotKeySet("{F5}", "_StarteFunktion2")
    HotKeySet("{F6}", "_StarteFunktion3")

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

    While 1

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

    WEnd

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

    Func _StarteFunktion1()
    MsgBox(0, "Key gedrückt", "Du hast F4 gedrückt")
    Exit
    EndFunc

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

    Func _StarteFunktion2()
    MsgBox(0, "Key gedrückt", "Du hast F5 gedrückt")
    Exit
    EndFunc

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

    Func _StarteFunktion3()
    MsgBox(0, "Key gedrückt", "Du hast F6 gedrückt")
    Exit
    EndFunc

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

    Edit: 3 Keys mit jeweils einer zugewiesenen Funktion

    Edit2 : Ups hab die While Schleife vergessen :P

  • Okay..Nur will ich keine MsgBox öffnen, sondern nen Button von der Form1 drücken...und das bekomme ich nicht hin :( ;)

  • Zitat

    Okay..Nur will ich keine MsgBox öffnen, sondern nen Button von der Form1 drücken...und das bekomme ich nicht hin :( ;)

    Wozu genau willst du die buttons drücken lassen?

    Du musst einfach nur den AutoIt Code unter

    [autoit]


    [...]
    Case $button1
    ; <--------- Diesen Code
    [...]

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

    Func _StarteFunktion1()
    ;<-------- Hier einfügen
    EndFunc

    [/autoit]

    Oder ich verstehe immernoch nicht den Sinn deines vorhabens... ?(


  • Ich hab ne Form, in der ich wenn ich §button1 drücke einen sound abspiele...
    dann wollte ich die ganze form mit @SW_HIDE verschwinden lassen und diesen $Button1 per Hotkey starten...
    Ich möchte nämlich nicht immer auf die Form gehen und mit der maus auf den $Button1 klicken..;)
    verstanden? :D ;)

  • dann machs doch so wie ichs gesagt habe

    nimm den code aus

    [autoit]


    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button1 ;<------- Dein Button
    ;Sound abspielen und/oder gui hide
    EndSwitch
    WEnd

    [/autoit]

    Dann machste daraus einfach:

    [autoit]


    HotKeySet("{F5}", "_play")

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _play()
    ;Sound abspielen
    EndFunc

    [/autoit]

    Mehr kann ich dir wahrscheinlich sonst nicht helfen