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>
func f11()
[/autoit][autoit][/autoit][autoit]$c1stand = FileReadLine("faves.txt",1)
$i1stand = FileReadLine("faves.txt",2)
$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)
$sb1 = 1
[/autoit][autoit][/autoit][autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
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)
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
Case $okay
ExitLoop
GUIDelete($Form1)
EndSwitch
WEnd
EndFunc
HotKeySet("{F11}","f11")
[/autoit][autoit][/autoit][autoit]While 1
WEnd
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:
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