CODICE
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Process.au3>
#include <File.au3>
#include <Date.au3>
#include <Constants.au3>
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <Array.au3>
Opt("TrayMenuMode", 1)
$dat = ""
$Debug_CB = False
If Not FileExists(@ScriptDir & "\FP.ini") Then
_FileCreate(@ScriptDir & "\FP.ini")
IniWrite(@ScriptDir & "\FP.ini", "Sett", "key", "1")
IniWrite(@ScriptDir & "\FP.ini", "Sett", "Log", "1")
EndIf
$fpdir = @ScriptDir & "\FP.ini"
$Form1 = GUICreate("FilePerformer", 376, 165, 299, 120)
$MenuItem1 = GUICtrlCreateMenu("Opzioni")
$MenuItem2 = GUICtrlCreateMenuItem("Impostazioni...", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenuItem("TOS", $MenuItem1)
$Group1 = GUICtrlCreateGroup("FPerformer", 45, 5, 281, 116)
$Combo1 = GUICtrlCreateCombo("", 80, 20, 216, 100)
$Button1 = GUICtrlCreateButton("Esegui File", 125, 50, 121, 31, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Aggiungi File", 60, 85, 121, 31, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Cancella File", 190, 85, 121, 31, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Copyright: LSoft. Under CC TOS", 0, 130, 156, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$exit = TrayCreateItem("Esci")
Global $irs = IniReadSection($fpdir, "Exec")
If IsArray($irs) Then
$datTot = $irs[0][0]
For $i = 1 To $irs[0][0]
Assign("data" & $i , $irs[$i][0])
$dat &= "|" & $irs[$i][0]
Next
GUICtrlSetData($Combo1, $dat)
EndIf
GUISetState(@SW_SHOW)
HotKeySet("!e", "_ExecProcByHotKey")
HotKeySet("!{UP}", "_Trayup")
HotKeySet("!{DOWN}", "_Traydown")
While 1
$nMsg = GUIGetMsg()
Switch TrayGetMsg()
Case $exit
Exit
Case $TRAY_EVENT_PRIMARYDOUBLE
GUISetState()
EndSwitch
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case -4
GUISetState(@SW_HIDE)
Case $MenuItem3
_RunDOS("start http://creativecommons.org/licenses/by-nc-nd/2.5/it/")
Case $MenuItem2
$sett = _Settings()
_LogWrite("Impostazioni Modificate : " & $sett)
Case $Button2
$file = FileOpenDialog("Seleziona File", @WorkingDir, "All(*.*)")
If $file <> "" Then
$split = StringSplit($file, "\")
IniWrite($fpdir, "Exec", $split[$split[0]], $file)
_RefreshCombo()
_LogWrite("File Added : " & $split[$split[0]])
EndIf
Case $Button1
$read = GUICtrlRead($Combo1)
If $read <> "Esegui File..." Then
If IniRead($fpdir, "Exec", $read, "") <> "" Then
ShellExecute(IniRead($fpdir, "Exec", $read, ""))
_LogWrite("Executed : " & $read)
Else
ShellExecute($read)
_LogWrite("Executed : " & $read)
EndIf
EndIf
Case $Button3
$read = GUICtrlRead($Combo1)
IniDelete($fpdir , "Exec" , $read)
_RefreshCombo()
_LogWrite("Deletted : " & $read)
EndSwitch
WEnd
Func _ExecProcByHotKey()
If IniRead($fpdir, "Sett", "Key", "0") <> "0" Then
$read = GUICtrlRead($Combo1)
If $read <> "Esegui File..." Then
If IniRead($fpdir, "Exec", $read, "") <> "" Then
ShellExecute(IniRead($fpdir, "Exec", $read, ""))
_LogWrite("Executed : " & $read)
Else
ShellExecute($read)
_LogWrite("Executed : " & $read)
EndIf
EndIf
EndIf
EndFunc ;==>_ExecProcByHotKey
Func _Trayup()
$search = _ArraySearch($irs, GUICtrlRead($Combo1))
If ($search - 1) <= 0 Then
$search = $irs[0][0] + 1
EndIf
GUICtrlSetData($Combo1, $irs[$search - 1][0])
TrayTip("File Impostato: ", $irs[$search - 1][0], 5)
EndFunc ;==>_Trayup
Func _Traydown()
$search = _ArraySearch($irs, GUICtrlRead($Combo1))
If $search = $irs[0][0] Then
$search = 0
EndIf
GUICtrlSetData($Combo1, $irs[$search + 1][0])
TrayTip("File Impostato: ", $irs[$search + 1][0], 5)
EndFunc ;==>_Traydown
Func _RefreshCombo()
GUICtrlDelete($Combo1)
$Combo1 = GUICtrlCreateCombo("", 80, 20, 216, 25)
$irs = IniReadSection($fpdir , "Exec")
$dat = ""
If IsArray($irs) Then
$datTot = $irs[0][0]
For $i = 1 To $irs[0][0]
Assign("data" & $i , $irs[$i][0])
$dat &= "|" & $irs[$i][0]
Next
GUICtrlSetData($Combo1, $dat)
EndIf
EndFunc
Func _Settings()
$Form2 = GUICreate("Settings", 282, 257, 395, 126, -1, $WS_EX_MDICHILD, $Form1)
GUISetState(@SW_DISABLE, $Form1)
GUISwitch($Form2)
$Group2 = GUICtrlCreateGroup("Impostazioni", 5, 0, 271, 226)
$Checkbox1 = GUICtrlCreateCheckbox("Usa Alt+E per eseguire il processo selezionato", 20, 25, 236, 16)
$Checkbox2 = GUICtrlCreateCheckbox("Registra in un file log le azioni compiute", 20, 50, 216, 21)
$Avi1 = GUICtrlCreateAvi(@ScriptDir & "\Etc\load.avi", -1, 10, 200, 26, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button3 = GUICtrlCreateButton("OK", 100, 230, 76, 21, $WS_GROUP)
$Button4 = GUICtrlCreateButton("Annulla", 190, 230, 76, 21, $WS_GROUP)
GUISetState(@SW_SHOW, $Form2)
GUICtrlSetState($Avi1, 1)
If IniRead($fpdir, "Sett", "key", "0") = 1 Then
GUICtrlSetState($Checkbox1, 1)
EndIf
If IniRead($fpdir, "Sett", "Log", "0") = 1 Then
GUICtrlSetState($Checkbox2, 1)
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUISetState(@SW_ENABLE, $Form1)
GUISwitch($Form1)
GUIDelete($Form2)
GUICtrlSetState($Avi1, 0)
Return 0
Case $Button3
$ch1 = GUICtrlRead($Checkbox1)
$ch2 = GUICtrlRead($Checkbox2)
$ret = ""
If $ch1 = 1 Then
IniWrite($fpdir, "Sett", "Key", "1")
$ret &= 1
Else
IniWrite($fpdir, "Sett", "Key", "0")
$ret &= 0
EndIf
If $ch2 = 1 Then
IniWrite($fpdir, "Sett", "Log", "1")
$ret &= 1
Else
IniWrite($fpdir, "Sett", "Log", "0")
$ret &= 0
EndIf
GUISetState(@SW_ENABLE, $Form1)
GUISwitch($Form1)
GUIDelete($Form2)
GUICtrlSetState($Avi1, 0)
Return $ret
Case $Button4
GUISetState(@SW_ENABLE, $Form1)
GUISwitch($Form1)
GUIDelete($Form2)
GUICtrlSetState($Avi1, 0)
Return 0
EndSwitch
WEnd
EndFunc ;==>_Settings
Func _LogWrite($snt)
If IniRead($fpdir, "Sett", "Log", "0") = 0 Then
Return 0
EndIf
FileWrite(@ScriptDir & "\Etc\Fp.log", _NowTime() & " > " & $snt & @CRLF)
EndFunc ;==>_LogWrite
Func _GetIcon($file, $ReturnType = 0)
$FileType = StringSplit($file, ".")
$FileType = $FileType[UBound($FileType) - 1]
$FileParam = RegRead("HKEY_CLASSES_ROOT\." & $FileType, "")
$DefaultIcon = RegRead("HKEY_CLASSES_ROOT\" & $FileParam & "\DefaultIcon", "")
If Not @error Then
$IconSplit = StringSplit($DefaultIcon, ",")
ReDim $IconSplit[3]
$Iconfile = $IconSplit[1]
$IconID = $IconSplit[2]
Else
$Iconfile = @SystemDir & "\shell32.dll"
$IconID = -219
EndIf
If $ReturnType = 0 Then
Return $Iconfile
Else
Return $IconID
EndIf
EndFunc ;==>_GetIcon