Hotkey auf ein $Edit wirken lassen

  • Hallo ich möchte das Diese Funcs auf das $Edit reagieren


    Spoiler anzeigen
    [autoit]

    Case $Back
    HotKeySet ("Z", "zpressed")

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

    Func zpressed()
    MsgBox(0,"","z wurde gedrückt")
    EndFunc

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

    Case $Forward
    HotKeySet ("Y", "ypressed")

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

    Func ypressed()
    MsgBox(0,"","y wurde gedrückt")
    EndFunc

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

    Case $Cut
    HotKeySet ("X", "xpressed")

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

    Func xpressed()
    MsgBox(0,"","x wurde gedrückt")
    EndFunc

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

    Case $Copy
    HotKeySet ("C", "cpressed")

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

    Func cpressed()
    MsgBox(0,"","c wurde gedrückt")
    EndFunc

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

    Case $Paste
    HotKeySet ("V", "vpressed")

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

    Func vpressed()
    MsgBox(0,"","v wurde gedrückt")
    EndFunc

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

    Case $Select
    HotKeySet ("A", "apressed")

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

    Func apressed()
    MsgBox(0,"","a wurde gedrückt")
    EndFunc

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

    Case $Delete
    HotKeySet ("Entf", "Entfpressed")

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

    Func Entfpressed()
    MsgBox(0,"","Entf wurde gedrückt")
    EndFunc

    [/autoit]

    Und hier mein Code ich weiß nicht wie es machen soll das diese Sachen auf das $Edit reagieren und ich weiß nichtmal ob sie richtig sind habe ich was vergessen vllt das "Strg" verstehe net wie das aufs $edit wirken soll und ob was falsch ist.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    ;GUI
    $GUI = GUICreate("KM Encrypter", 632, 435, 203, 128)

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

    ;Textfeld
    $Edit = GUICtrlCreateEdit("", 0, 0, 632, 415)

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

    ;Datei Menü
    $Data = GUICtrlCreateMenu("&Datei")
    $Open1 = GUICtrlCreateMenuItem("Öffnen...", $Data)
    $Save1 = GUICtrlCreateMenuItem("Speichern unter...", $Data)
    $Close = GUICtrlCreateMenuItem("Schließen", $Data)

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

    ;Bearbeiten Menü
    $Work = GUICtrlCreateMenu("&Bearbeiten")
    $Back = GUICtrlCreateMenuItem("Rückgängig", $Work)
    $Forward = GUICtrlCreateMenuItem("Wiederherstellen", $Work)
    $Cut = GUICtrlCreateMenuItem("Ausschneiden", $Work)
    $Copy = GUICtrlCreateMenuItem("Kopieren", $Work)
    $Paste = GUICtrlCreateMenuItem("Einfügen", $Work)
    $Delete = GUICtrlCreateMenuItem("Löschen", $Work)
    $Select = GUICtrlCreateMenuItem("Alles markieren", $Work)

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

    ;Optionen Menü
    $Options = GUICtrlCreateMenu("&Optionen")

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

    ;Extras Menü
    $Extras = GUICtrlCreateMenu("&Extras")
    $Check = GUICtrlCreateMenuItem("Auf Neue Version prüfen", $Extras)
    $Bug = GUICtrlCreateMenuItem("Bug Report", $Extras)
    $About = GUICtrlCreateMenuItem("Über das Programm", $Extras)

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

    ;Hilfe Menü
    $Help = GUICtrlCreateMenu("&Hilfe")

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

    ;Tray Menü
    $Tray = TraySetClick("9")
    $TrayCheck = TrayCreateItem("Auf Neue Version prüfen")
    $TrayAbout = TrayCreateItem("Über das Programm")
    $TrayClose = TrayCreateItem("Beenden")
    Opt("TrayMenuMode",1)
    GUISetState(@SW_SHOW)

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

    While 1
    $TrayMsg = TrayGetMsg();Tray Befehle
    $Msg = GUIGetMsg()
    Switch $Msg

    ;Datei öffnen
    Case $Open1
    $Open2 = FileOpenDialog ( "Datei öffnen", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    $inhalt = FileRead ($Open2)
    GUICtrlSetData($Edit,$inhalt)

    ;Datei speichern
    Case $Save1
    $Save2 = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    If $Save2 <> ".txt" Then $Save2 &=".txt"
    FileWrite($Save2, (GUICtrlRead($Edit)))

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

    ;.................................................

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

    Case $Back
    HotKeySet ("Z", "zpressed")

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

    Func zpressed()
    MsgBox(0,"","z wurde gedrückt")
    EndFunc

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

    Case $Forward
    HotKeySet ("Y", "ypressed")

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

    Func ypressed()
    MsgBox(0,"","y wurde gedrückt")
    EndFunc

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

    Case $Cut
    HotKeySet ("X", "xpressed")

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

    Func xpressed()
    MsgBox(0,"","x wurde gedrückt")
    EndFunc

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

    Case $Copy
    HotKeySet ("C", "cpressed")

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

    Func cpressed()
    MsgBox(0,"","c wurde gedrückt")
    EndFunc

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

    Case $Paste
    HotKeySet ("V", "vpressed")

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

    Func vpressed()
    MsgBox(0,"","v wurde gedrückt")
    EndFunc

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

    Case $Select
    HotKeySet ("A", "apressed")

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

    Func apressed()
    MsgBox(0,"","a wurde gedrückt")
    EndFunc

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

    Case $Delete
    HotKeySet ("Entf", "Entfpressed")

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

    Func Entfpressed()
    MsgBox(0,"","Entf wurde gedrückt")
    EndFunc

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

    ;.................................................
    ;per "X" beenden
    Case $GUI_EVENT_CLOSE
    Exit

    ;per Menü-Item "Schließen" beenden
    Case $Close
    Exit
    EndSwitch

    Switch $TrayMsg

    ;per "Beenden" im Tray beenden
    Case $TrayClose
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Schonmal Danke im Voraus für alle Hilfe die kommt :) :) :)

    2 Mal editiert, zuletzt von König Mickey (24. Oktober 2007 um 18:34)

  • Undo gibt es auch eine Funktion... Such mal in der Hilfe. Cut, Copy, Paste muss man selber machen:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    #include<GuiEdit.au3>
    Local Const $WM_CUT = 0x300
    Local Const $WM_COPY = 0x301
    Local Const $WM_PASTE = 0x302
    Local Const $WM_CLEAR = 0x303

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

    GUICreate("My GUI edit") ; will create a dialog box that when displayed is centered
    ;Bearbeiten Menü
    $Work = GUICtrlCreateMenu("&Bearbeiten")
    $Back = GUICtrlCreateMenuItem("Rückgängig", $Work)
    $Forward = GUICtrlCreateMenuItem("Wiederherstellen", $Work)
    $Cut = GUICtrlCreateMenuItem("Ausschneiden", $Work)
    $Copy = GUICtrlCreateMenuItem("Kopieren", $Work)
    $Paste = GUICtrlCreateMenuItem("Einfügen", $Work)
    $Select = GUICtrlCreateMenuItem("Alles markieren", $Work)

    $myedit=GUICtrlCreateEdit ("First line"& @CRLF, 176,32,121,97)
    $buttUndo = GUICtrlCreateButton("Undo",0,0)
    $noundo = False

    GUISetState ()

    ; will be append dont' forget 3rd parameter
    GUICtrlSetData ($myedit, "Second line",1)

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    If $msg = $buttUndo Then GUICtrlSendMsg($myedit,$EM_UNDO,0,0) ;Undo senden
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Switch $msg
    Case $Back
    _GUICtrlEditUndo($myedit)

    Case $Forward
    Send ("Y")

    Case $Cut
    GUICtrlSendMsg($myedit,$WM_CUT,0,0) ; Ausschneiden

    Case $Copy
    GUICtrlSendMsg($myedit,$WM_COPY,0,0) ; Kopieren

    Case $Paste
    GUICtrlSendMsg($myedit,$WM_PASTE,0,0) ; Einfügen

    Case $Select
    _GUICtrlEditSetSel($myedit,0,-1)
    EndSwitch
    Wend

    [/autoit]
  • Ok habs ma reingetan weiß aba net ob alles richtig is denke ja aber ich bekomme jetz immer denn fehler WEnd has no matching While

    Mein Code

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiEdit.au3>

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

    ;.....................................
    Local Const $WM_CUT = 0x300
    Local Const $WM_COPY = 0x301
    Local Const $WM_PASTE = 0x302
    ;......................................

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

    ;GUI
    $GUI = GUICreate("KM Encrypter", 632, 435, 203, 128)

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

    ;Textfeld
    $Edit = GUICtrlCreateEdit("", 0, 0, 632, 415)

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

    ;Datei Menü
    $Data = GUICtrlCreateMenu("&Datei")
    $Open1 = GUICtrlCreateMenuItem("Öffnen...", $Data)
    $Save1 = GUICtrlCreateMenuItem("Speichern unter...", $Data)
    $Close = GUICtrlCreateMenuItem("Schließen", $Data)

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

    ;Bearbeiten Menü
    $Work = GUICtrlCreateMenu("&Bearbeiten")
    $Back = GUICtrlCreateMenuItem("Rückgängig", $Work)
    $Forward = GUICtrlCreateMenuItem("Wiederherstellen", $Work)
    $Cut = GUICtrlCreateMenuItem("Ausschneiden", $Work)
    $Copy = GUICtrlCreateMenuItem("Kopieren", $Work)
    $Paste = GUICtrlCreateMenuItem("Einfügen", $Work)
    $Select = GUICtrlCreateMenuItem("Alles markieren", $Work)

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

    ;Optionen Menü
    $Options = GUICtrlCreateMenu("&Optionen")

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

    ;Extras Menü
    $Extras = GUICtrlCreateMenu("&Extras")
    $Check = GUICtrlCreateMenuItem("Auf Neue Version prüfen", $Extras)
    $Bug = GUICtrlCreateMenuItem("Bug Report", $Extras)
    $About = GUICtrlCreateMenuItem("Über das Programm", $Extras)

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

    ;Hilfe Menü
    $Help = GUICtrlCreateMenu("&Hilfe")

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

    ;Tray Menü
    $Tray = TraySetClick("9")
    $TrayCheck = TrayCreateItem("Auf Neue Version prüfen")
    $TrayAbout = TrayCreateItem("Über das Programm")
    $TrayClose = TrayCreateItem("Beenden")
    Opt("TrayMenuMode",1)
    GUISetState(@SW_SHOW)

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

    While 1
    $TrayMsg = TrayGetMsg();Tray Befehle
    $Msg = GUIGetMsg()
    Switch $Msg

    ;Datei öffnen
    Case $Open1
    $Open2 = FileOpenDialog ( "Datei öffnen", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    $inhalt = FileRead ($Open2)
    GUICtrlSetData($Edit,$inhalt)

    ;Datei speichern
    Case $Save1
    $Save2 = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    If $Save2 <> ".txt" Then $Save2 &=".txt"
    FileWrite($Save2, (GUICtrlRead($Edit)))

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

    ;.................................................

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

    If $msg = $Back Then GUICtrlSendMsg($Edit,$EM_UNDO,0,0) ;Undo senden
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Switch $msg

    ;Rückgängig
    Case $Back
    _GUICtrlEditUndo($Edit)

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

    Case $Forward
    HotKeySet ("Y")

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

    ;Ausschneiden
    Case $Cut
    GUICtrlSendMsg($Edit,$WM_CUT,0,0)

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

    ;Kopieren
    Case $Copy
    GUICtrlSendMsg($Edit,$WM_COPY,0,0)

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

    ;Einfügen
    Case $Paste
    GUICtrlSendMsg($Edit,$WM_PASTE,0,0)

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

    ;Alles markieren
    Case $Select
    _GUICtrlEditSetSel($Edit,0,-1)

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

    ;.................................................

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

    ;per "X" beenden
    Case $GUI_EVENT_CLOSE
    Exit

    ;per Menü-Item "Schließen" beenden
    Case $Close
    Exit
    EndSwitch

    Switch $TrayMsg

    ;per "Beenden" im Tray beenden
    Case $TrayClose
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Pls ma schauen was falsch ist

  • Nicht einfach so kopieren. Und sich immer was dabei denken :)

    If $msg = $Back Then GUICtrlSendMsg($Edit,$EM_UNDO,0,0) ;Undo senden
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Switch $msg

  • Is daran jetzt was falsch oder wie, und wo muss ich code was ändern damit das problem net mehr kommt?

    Einmal editiert, zuletzt von König Mickey (24. Oktober 2007 um 19:14)

  • Schau einfach mal was du da getan hast... Einfach den Code kopiert, ohne genau darauf zu achten, was du brauchst.

    Spoiler anzeigen

    1) Gui_Event Close fragst du im Switch schon ab
    2) Den Switch $msg hats du 2x drin -> aber das 2te Endswitch würde fehlen
    3) Das erste if war für den Button in meinem BspScript.
    4)Die beiden If- Abfragen und die 2teSwitch-Abfrage stehen mitten in einem Case, nämlich dem von $Ssave1


    Die drei Zeilen brauchst du also nicht.

  • Ja Danke hab es selba schon gesehen

    Hier habe ich mal so versucht

    [autoit]

    Case $Forward
    _GUICtrlEditRedo($Edit)

    [/autoit]

    Hat leider nicht gefuntz weiß jemand wie ich dann Wiederherstellen machen kann, denn das hat nicht gefuntz was ich versucht habe.

    Schonmal Danke für alle Hilfe die kommt :D :D :D

    4 Mal editiert, zuletzt von König Mickey (25. Oktober 2007 um 15:00)

  • Undo kann im Textfeld immer einen Schritt Rückgängig machen und diesen dann wiederholen. Bsp:

    Spoiler anzeigen


    -Hallo,
    -Hallo, ich
    ->Undo
    -Hallo,
    ->Undo
    -Hallo, ich
    ->Undo
    -Hallo,
    ->Undo
    -Hallo, ich
    ...

  • Ja ok Danke soweit war ich auch schon, aba ich wüsset gerne wie Wiederherstellen geht.

  • Ja aba das ist Rückgängig und Wiederherstellen, ich möchte aba wissen was wiederherstellen alleine is.

    in Scite ja so:

    Undo = Rückgängig

    Redo = Wiederherstellen

    wie kann ich REDO auch machen?

  • So gehts vielleicht:

    [autoit]

    Case $Back
    _GUICtrlEditUndo($Edit)
    $undo2redo = GUICtrlRead($Edit)

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

    Case $Forward
    If GUICtrlRead($Edit) = $undo2redo Then _GUICtrlEditUndo($Edit)

    [/autoit]

    An den Anfang vom Script muss noch Dim $undo2redo.
    Ist nicht perfekt. Wenn man über STRG-Z Rückgängig macht funktioniert Der Mnüeintrag nicht

  • THX hat gefuntz auch ohne oben "undo2redo" zu machen, und ich habe in der Hilfe gesucht aba nix gefunde ich möchte das man das Datum und die Zeit automatisch einfügen kann.

    Bei Notepad geht es ja auch ich würde es gerne auch machen und denn Inhalt aus $Edit auch löschen also eine MenüOption "löschen" habe ich aber...

    [autoit]

    GUICtrlSendMsg($Edit,"{DELETE}",0,0)

    [/autoit]

    funktioniert nicht für löschen deswegen frage ich hier.

    Wie kann ich Datum/Zeit einfügen lassen und wie kann ich denn inhalt aus $Edit löschen lassen?

  • Das Dim Undo2redo würde ich einfügen, da sonst das Programm abstürzt, wenn man auf redo klickt, ohne zuvor auf Undo geklickt zu haben

    Delete geht so:

    [autoit]

    Local Const $WM_CLEAR = 0x303
    GUICtrlSendMsg($Edit,$WM_CLEAR,0,0)

    [/autoit]
  • Wie wärs mit etwas Eigeniniative?
    Also, erst mal in der Hilfe:
    _GUICtrlEditReplaceSel()
    Dann

    Spoiler anzeigen

    Macro Description
    @SEC
    Seconds value of clock. Range is 00 to 59

    @MIN
    Minutes value of clock. Range is 00 to 59

    @HOUR
    Hours value of clock in 24-hour format. Range is 00 to 23

    @MDAY
    Current day of month. Range is 01 to 31

    @MON
    Current month. Range is 01 to 12

    @YEAR
    Current four-digit year
    @WDAY
    Numeric day of week. Range is 1 to 7 which corresponds to Sunday through Saturday.
    @YDAY
    Current day of year. Range is 1 to 366 (or 365 if not a leap year)


    Daraus kannst du dein Datum Zusammenbauen