Per Knopfdruck Texte senden, Ordner, Programme, Sounds und Websiten öffnen

  • Ich hab gestern angefangen ein Programm/Script (was ist da eigentlich der unterschied?) zu schreiben, mit dem man per Knopfdruck Texte senden, Ordner, Programme, Sounds und Websiten öffnen kann.

    Bin zur Zeit bei der Gui, bei der man einstellen kann, was man jetzt genau senden, öffnen.. will.

    Aber irgendwie will das nicht ganz. :( Hier mal der Code

    [autoit]

    msgbox(0,"Debug","Debug-Programm. F11 drücken")

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

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <GuiComboBox.au3>
    #include <File.au3>
    #Include <GuiEdit.au3>

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

    func f11()

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

    $c1stand = FileReadLine("faves.txt",1)
    $i1stand = FileReadLine("faves.txt",2)

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

    $Form1 = GUICreate("Form1", 771, 706, 192, 124)
    $ueberschrift = GUICtrlCreateLabel("Ändern", 16, 8, 130, 49)
    GUICtrlSetFont(-1, 30, 400, 0, "Arial")
    $g1 = GUICtrlCreateGroup("F1", 8, 64, 369, 49)
    $i1 = GUICtrlCreateInput($i1stand, 128, 80, 201, 21)
    $i1s =GUICtrlSetState(-1, $GUI_DISABLE)
    $c1 = GUICtrlCreateCombo($c1stand, 16, 80, 105, 25)
    GUICtrlSetData(-1, "Text|Pfad|Programm|Sound|Website")
    $c1s =GUICtrlSetState(-1, $GUI_DISABLE)
    $b1 = GUICtrlCreateButton("...", 336, 80, 33, 25, 0)
    $okay = GUICtrlCreateButton("OK", 296, 624, 177, 73, 0)
    GUICtrlSetFont(-1, 25, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

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

    $sb1 = 1

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $b1
    If $sb1 = 1 Then
    $sb1 = 0
    GuiCtrlSetData($b1,"OK")
    $i1s = GUICtrlSetState($i1,$GUI_ENABLE)
    $c1s = GUICtrlSetState($c1,$GUI_ENABLE)
    $i1 = GUICtrlCreateInput("", 128, 80, 201, 21)
    $c1 = GUICtrlCreateCombo(" ", 16, 80, 105, 25)

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

    ElseIf $sb1 = 0 Then
    $sb1 = 1
    GuiCtrlSetData($b1,"...")
    $i1s = GUICtrlSetState($i1,$GUI_DISABLE)
    $c1s = GUICtrlSetState($c1,$GUI_DISABLE)
    $c1c = _GUICtrlComboBox_GetCurSel($c1)
    $i1c = _GUICtrlEdit_GetLine($i1,1)
    Switch $c1c
    Case 1
    _FileWriteToLine("faves.txt", 1,"Text",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 2
    _FileWriteToLine("faves.txt", 1,"Pfad",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 3
    _FileWriteToLine("faves.txt", 1,"Programm",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 4
    _FileWriteToLine("faves.txt", 1,"Sound",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 5
    _FileWriteToLine("faves.txt", 1,"Website",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    EndSwitch
    EndIf

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

    Case $okay
    ExitLoop
    GUIDelete($Form1)
    EndSwitch
    WEnd
    EndFunc

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

    HotKeySet("{F11}","f11")

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

    While 1
    WEnd

    [/autoit]

    Die GUI ist jetzt etwas 'unförmig', aber ich hab den großteil aus der GUI rausgeschnitten, weil sich die ComboBox, Das Inputfeld und der Button nur 19-Mal widerholen (für F1-F10 und STRG F1- STRG F10).

    So sollte es aussehen:
    Zuerst steht am Button "..." und die Combobox und das Inputfeld sind auf Disable, 'innen drin' stehen die Werte die bei der faves.txt auf Zeile 1 und 3 stehen. Sobald man draufdrückt, ändert sich der Text am Button auf "OK", die Combobox und das Inputfeld werden Enabled, die Caption von der ComboBox und dem Input werden gelöscht, man tippt ein was man will (zb. Combobox: Website, Inputfeld: https://autoit.de/www.example.org), drückt auf OK. der TExt am Button ändert sich wieder auf "...", und die Werte werden in die faves.txt auf Zeile 1 und 2 geschrieben.

    So sieht es aus:
    Eigentlich ganz okay, sobald man auf "..." geklickt hat, löschen sich die Caption von der Combobox und vom Input, aber sobald man mit der maus über die Combobox fährt /man auf das Inputfeld klickt, werden wieder die Daten von Zeile 1 und 2 eingelesen, und stehen wieder dort.
    Eigentlich nicht schlimm, aber sobald ich den Text gelöscht hab, meinen eingetippt und auf OK geklickt hab, werden die Werte nicht gespeichert. Weiters werden die Captions von Combobox und Inputfeld gelöscht.

    Probiert den Quellcode aus, ihr werdet sehen was ich meine.

    Achja:

    ind der faves.txt steht folgendes:

    Code
    Pfad
    C:\Dokumente und Einstellungen

    und: Ich hab grad bemerkt, das bei der verstümmelten version vom Programm/script, das ich reingestellt hab, der grosse OK button nicht funktioniert. müüst ihr die GUI halt über das [x] schliessen.

    Wenn ihr auch noch Vorschläge habt, wie man das sonst noch besser Programmieren/Scripten könnte, immer her damit.

    Heute werde ich mir die Beiträge nicht mehr anschaun, hab morgen schule.

    lg, Flonk

    Einmal editiert, zuletzt von Flonk (27. Januar 2009 um 20:03)

  • Bei dem Code würd ich auch nicht wollen :huh:
    Du hast die Combobox und den Input mehrmals angelegt und die liegen dann bloß übereinander (der leere neu angelegte obenauf) und wenn du drauf gehst wird halt der untere in dem was drin steht aktiv.

    [autoit]

    msgbox(0,"Debug","Debug-Programm. F11 drücken")

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

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <GuiComboBox.au3>
    #include <File.au3>
    #Include <GuiEdit.au3>

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

    func f11()

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

    $c1stand = FileReadLine("faves.txt",1)
    $i1stand = FileReadLine("faves.txt",2)

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

    $Form1 = GUICreate("Form1", 771, 706, 192, 124)
    $ueberschrift = GUICtrlCreateLabel("Ändern", 16, 8, 130, 49)
    GUICtrlSetFont(-1, 30, 400, 0, "Arial")
    $g1 = GUICtrlCreateGroup("F1", 8, 64, 369, 49)
    $i1 = GUICtrlCreateInput($i1stand, 128, 80, 201, 21)
    $i1s =GUICtrlSetState(-1, $GUI_DISABLE)
    $c1 = GUICtrlCreateCombo($c1stand, 16, 80, 105, 25)
    GUICtrlSetData(-1, "Text|Pfad|Programm|Sound|Website")
    $c1s =GUICtrlSetState(-1, $GUI_DISABLE)
    $b1 = GUICtrlCreateButton("...", 336, 80, 33, 25, 0)
    $okay = GUICtrlCreateButton("OK", 296, 624, 177, 73, 0)
    GUICtrlSetFont(-1, 25, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

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

    $sb1 = 1

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $b1
    If $sb1 = 1 Then
    $sb1 = 0
    GuiCtrlSetData($b1,"OK")
    ;$i1 = GUICtrlCreateInput("", 128, 80, 201, 21)
    ;$c1 = GUICtrlCreateCombo(" ", 16, 80, 105, 25)
    $i1s = GUICtrlSetState($i1,$GUI_ENABLE)
    $c1s = GUICtrlSetState($c1,$GUI_ENABLE)

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

    ElseIf $sb1 = 0 Then
    $sb1 = 1
    GuiCtrlSetData($b1,"...")
    $c1c = GUICtrlRead ( $c1)
    $i1c = GUICtrlRead ($i1)
    $i1s = GUICtrlSetState($i1,$GUI_DISABLE)
    $c1s = GUICtrlSetState($c1,$GUI_DISABLE)
    GuiCtrlSetData($i1,'')
    GuiCtrlSetData($c1,'')
    GUICtrlSetData($c1, "Text|Pfad|Programm|Sound|Website")

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

    Switch $c1c
    Case 1
    _FileWriteToLine("faves.txt", 1,"Text",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 2
    _FileWriteToLine("faves.txt", 1,"Pfad",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 3
    _FileWriteToLine("faves.txt", 1,"Programm",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 4
    _FileWriteToLine("faves.txt", 1,"Sound",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    Case 5
    _FileWriteToLine("faves.txt", 1,"Website",1)
    _FileWriteToLine("faves.txt", 2,$i1c,1)
    EndSwitch
    EndIf

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

    Case $okay
    ExitLoop
    GUIDelete($Form1)
    EndSwitch
    WEnd
    EndFunc

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

    HotKeySet("{F11}","f11")

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

    While 1
    WEnd

    [/autoit]
  • Script: Code, welcher Zeile für Zeile interpretiert wird. (z.B. AutoIt, VBS)
    Programm: Code, der einmal übersetzt wird und dann direkt ausgeführt werden kann. (z.B. C++, Basic)

    Allerdings ist das bei AutoIt sowieso ein bissl schwierig, denn 1. bezeichnet man komplexere Scripte auch als Programme, und 2. "übersetzt" AutoIt den Code auch, jedenfalls tut es so. Intern wird jedoch bei jedem AutoIt-programm der Code zur Laufzeit interpretiert.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Bei dem Code würd ich auch nicht wollen :huh:
    Du hast die Combobox und den Input mehrmals angelegt und die liegen dann bloß übereinander (der leere neu angelegte obenauf) und wenn du drauf gehst wird halt der untere in dem was drin steht aktiv.

    achso!
    Danke