Hi,
wer keine Lust hat, in seinem Autostart-Ordner eine Verknüpfung anzulegen oder Dateien da rein zu kopieren (ist subjektiv betrachtet extrem nervend), kann Folgendes nutzen (so dachte ich es mir jedenfalls :D):
Spoiler anzeigen
;GUI Autostart
[/autoit] [autoit][/autoit] [autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]dim $toggle = 1
dim $ini = @UserProfileDir & "\autostart.ini"
HotKeySet("^{F12}","guitoggle")
[/autoit] [autoit][/autoit] [autoit]#include <date.au3>
#include <file.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIComboBoxEx.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Autostart GUI by x0r", 627, 454, 192, 114, Default, $WS_EX_ACCEPTFILES)
$list = GUICtrlCreateList("", 16, 48, 481, 383)
$addin = GUICtrlCreateInput("", 16, 16, 593, 21)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
$add = GUICtrlCreateButton("Hinzufügen", 512, 48, 99, 25, $WS_GROUP)
$del = GUICtrlCreateButton("Löschen", 512, 80, 99, 25, $WS_GROUP)
$runini = GUICtrlCreateButton("ini öffnen", 512, 300, 99, 25, $WS_GROUP)
$xit = GUICtrlCreateButton("Beenden", 512, 408, 99, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
guitoggle()
fillbox()
startup()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $add
saveds()
GUICtrlSetData($addin,"")
Case $del
deleteentry()
Case $runini
ShellExecute($ini)
Case $xit
Exit
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
func startup()
$cnt = _FileCountLines($ini)
For $i = 2 to $cnt
$sec = FileReadLine($ini, $i)
$sec = StringSplit($sec,"=")
if $sec[2] <> "" then
ShellExecute($sec[2])
sleep(500) ;Timer je nach Bedarf
EndIf
Next
EndFunc
func guitoggle()
$toggle = BitXOR($toggle,1)
if $toggle = 1 Then GUISetState(@SW_SHOW)
if $toggle = 0 Then GUISetState(@SW_HIDE)
EndFunc
Func fillbox()
GUICtrlSetData($list, "")
$cnt = _FileCountLines($ini)
For $i = 2 to $cnt
$sec = FileReadLine($ini, $i)
GUICtrlSetData($list, $sec)
Next
EndFunc
Func saveds()
Local $additem = GUICtrlRead($addin)
if $additem <> "" then IniWrite($ini, "start", _Now(), $additem)
fillbox()
EndFunc
Func deleteentry()
if GUICtrlRead($list) <> "" Then
local $reallydel = MsgBox(36, "Eintrag löschen", "Sicher?")
If $reallydel = 6 Then
Local $proj1 = GUICtrlRead($list)
$proj1 = StringSplit($proj1,"=")
IniDelete($ini, "start", $proj1[1])
fillbox()
EndIf
EndIf
EndFunc
Das Teil einfach kompiliert in besagten Ordner und schon hat man so ne Art "Autostart-Manager".
Es ist eigentlich selbsterklärend:
Kurze Beschreibung:
- beim Start (und nur da) führt es eingetragene Programme aus, wenn nix drin steht, öffnet sich auch nix
- wird mittels "Strg+F12" geöffnet und wieder versteckt (toggle)
- GUI ist "Drag & Drop", das heisst man kann gewünschte Dateien einfach in die obere Zeile ziehen und dann "Hinzufügen"
- Löschen gibts natürlich auch
- man kann die ini direkt öffnen (welche im @UserProfileDir liegt)
- und beenden über den Button "Beenden" oder "ESC"
Viel Spass damit oder auch nicht
Gruß
x0r