J'ai crée le programme suivant
► Afficher le texte
Code : Tout sélectionner
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
Opt("TrayMenuMode",1)
Opt("TrayAutoPause",1); Default tray menu items (Script Paused/Exit) will not be shown.
Global $Hauteur = @DesktopHeight - 60
Global $Largeur = @DesktopWidth - 180
$Bleu = "0xced8fd"
$Vert = "0xcdfedb"
$Orange = "0xfdd7b4"
$Rouge = "0xfcacb5"
$Ico_Blue = "play_blue.ico"
$Ico_Green = "play_green.ico"
$Ico_Red = "play_red.ico"
TraySetIcon($Ico_Blue)
TraySetToolTip("Sauvegarde")
$AboutItem = TrayCreateItem("A Propos")
$Separateur1= TrayCreateItem("")
$Save_NowItem = TrayCreateItem("Lancer Sauvegarde")
$Form1 = GUICreate("Notify", 180, 25, $Largeur, $Hauteur, $WS_POPUP, BitOR($WS_EX_TOPMOST,$WS_EX_LAYERED,$WS_EX_TOOLWINDOW))
GUISetBkColor($Bleu)
$Label1 = GUICtrlCreateLabel("", 125, 4, 50, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetColor(-1, 0x712eef)
$Label2 = GUICtrlCreateLabel("Sauvegarde dans", 10, 4, 115, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetColor(-1, 0x712eef)
$Button_test = GUICtrlCreateButton("+", 264, 226, 41, 41, 0)
GUICtrlSetFont(-1, 28, 800, 0, "Comic Sans MS")
GUISetState(@SW_SHOW)
TraySetState()
WinSetTrans($Form1, "", 100)
WinSetState($Form1,"",@SW_HIDE)
; // Déclarations des variables
Global $More5mnItem, $More10mnItem, $ExitItem, $Separateur1, $Separateur2
Global $en_cours
$Inifile = "save.ini"
$Nbre_5mn = 0
$Nbre_10mn = 0
$H = "00"
$M = ""
$S = ""
$Cpte_Rebours = ""
$Lock = "0"
$TRAY_DISABLE = "128"
$cmd_Prg = '"backup.vbs"'
$DayName = _DateDayOfWeek(_DateToDayOfWeek(@YEAR, @MON, @MDAY))
$en_cours = False
$icone = "0"
$ChgIcone = "0"
$Notifier = "0"
While 1
$msg1 = GUIGetMsg()
switch $msg1
Case $msg1 = 0
ContinueLoop
Case $Button_test
_Notification()
EndSwitch
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $AboutItem
Msgbox(64 + 262144, "A Propos", "Sauvegarde Automatique")
Case $msg = $Save_NowItem
_LancerSauvegarde()
Case $msg = $More5mnItem
AdlibUnRegister ("_Miseajour")
$M = Stringleft(GUICtrlRead($Label1),2)
$S = StringRight(GUICtrlRead($Label1),2)
$New_Time = _TimeToTicks ("00",$M,$S) +300000
if $New_Time > "3600000" Then $New_Time = "3600000"
_TicksToTime($New_Time,$H,$M,$S)
if StringLen($M) < "2" Then
$M = "0" & $M
EndIf
if Stringlen($S) < "2" Then
$S = "0" & $S
EndIf
GUICtrlSetData($Label1, $M&":"&$S)
$Nbre_5mn = $Nbre_5mn +1
If $Nbre_5mn = "2" Then TrayItemSetState($More5mnItem, $TRAY_DISABLE)
AdlibRegister("_Miseajour",1000)
Case $msg = $More10mnItem
AdlibUnRegister ("_Miseajour")
$M = Stringleft(GUICtrlRead($Label1),2)
$S = StringRight(GUICtrlRead($Label1),2)
$New_Time = _TimeToTicks ($H,$M,$S) +600000
if $New_Time > "3600000" Then $New_Time = "3600000"
_TicksToTime($New_Time,$H,$M,$S)
if StringLen($M) < "2" Then
$M = "0" & $M
EndIf
if Stringlen($S) < "2" Then
$S = "0" & $S
EndIf
GUICtrlSetData($Label1, $M&":"&$S)
$Nbre_10mn = $Nbre_10mn +1
If $Nbre_10mn = "2" Then TrayItemSetState($More10mnItem, $TRAY_DISABLE)
AdlibRegister("_Miseajour",1000)
Case $msg = $ExitItem
AdlibUnRegister("_Miseajour")
TrayItemDelete($More10mnItem)
TrayItemDelete ($More5mnItem)
TrayItemDelete($ExitItem)
TrayItemDelete($Separateur2)
WinSetState($Form1,"",@SW_HIDE)
AdlibUnregister("_ChgIcone")
Trayseticon($Ico_Blue)
TraySetState()
ToolTip("")
TraySetToolTip("Sauvegarde")
EndSelect
WEnd
Func _Horloge()
Local $DayName = _DateDayOfWeek(_DateToDayOfWeek(@YEAR, @MON, @MDAY))
Local $MonName = _DateToMonth(@MON)
$M = Stringleft(GUICtrlRead($Label1),2)
$S = StringRight(GUICtrlRead($Label1),2)
$New_Time = _TimeToTicks ($H,$M,$S) -60
Select
Case $New_Time > "300000"
GUISetBkColor($Bleu)
WinSetTrans($Form1, "", 100)
AdlibUnRegister("_ChgIcone")
Trayseticon($Ico_Blue)
TraySetState()
Case $New_Time < "300001" and $New_Time > "180000"
GUISetBkColor($Vert)
WinSetTrans($Form1, "", 150)
Adlibunregister("_ChgIcone")
Trayseticon($Ico_Green)
TraySetState()
Case $New_Time < "180001" and $New_Time > "60000"
GUISetBkColor($Orange)
WinsetTrans($Form1,"",200)
Adlibregister("_ChgIcone",500)
Case $New_Time < "60001"
GUISetBkColor($Rouge)
WinSetTrans($Form1,"",250)
AdlibRegister("_ChgIcone",250)
EndSelect
_TicksToTime($New_Time,$H,$M,$S)
if StringLen($M) < "2" Then
$M = "0" & $M
EndIf
if Stringlen($S) < "2" Then
$S = "0" & $S
EndIf
If $M = "00" and $S = "00" Then
_LancerSauvegarde()
EndIf
Return $M&":"&$S
EndFunc ;==>_Horloge
Func _MiseaJour()
GUICtrlSetData($Label1, _Horloge())
EndFunc
Func _Notification()
WinSetState($Form1, "", @SW_SHOW)
TraySetState()
TrayItemDelete($Save_NowItem)
TrayItemDelete($AboutItem)
TrayItemDelete($Separateur1)
$AboutItem = TrayCreateItem("A Propos")
TrayCreateItem("")
$More10mnItem = TrayCreateItem("+10 min")
$More5mnItem = TrayCreateItem("+5 min")
$Save_NowItem = TrayCreateItem("Lancer Sauvegarde")
$Separateur2 = TrayCreateItem("")
$ExitItem = TrayCreateItem("Annuler Sauvegarde")
$Ini_Planification = IniReadSection($Inifile, "Planification")
if @error Then
IniWriteSection ($Inifile,"Planification","")
Else
For $i = 1 To $Ini_Planification[0][0]
;if $Ini_Planification
if $Ini_Planification[$i][0] = "Notifier" and $Ini_planification[$i][1] <> "0" then $Notifier = "1"
if $Ini_Planification[$i][0] = "Lock" Then $Lock = $Ini_Planification [$I][1]
if $Ini_Planification[$i][0] = $DayName Then
$H = StringLeft($Ini_Planification[$i][1],2)
$M = StringRight($Ini_Planification[$i][1],2)
$S = "00"
local $Time_Sauvegarde = _TimeToTicks($H,$M,$S)
local $Time = _TimeToTicks(@HOUR,@MIN,@SEC)
$Cpte_Rebours = _TicksToTime($Time_Sauvegarde - $Time,$H,$M,$S)
if StringLen($M) < "2" Then
$M = "0" & $M
EndIf
if Stringlen($S) < "2" Then
$S = "0" & $S
EndIf
EndIf
Next
EndIf
GUICtrlSetData($Label1,$M&":"&$S)
AdlibRegister("_MiseaJour",1000)
if $Notifier = "1" Then WinSetState($Form1, "", @SW_SHOW)
EndFunc ;==> _Notification
Func _LancerSauvegarde()
AdlibUnRegister("_Miseajour")
AdlibUnRegister("_ChgIcone")
TrayItemDelete($More10mnItem)
TrayItemDelete ($More5mnItem)
TrayItemDelete($ExitItem)
TrayItemDelete($Separateur2)
WinSetState($Form1,"",@SW_HIDE)
if Not FileExists ("en_cours.txt") Then
if $Lock = "1" then ShellExecute("c:\windows\System32\rundll32.exe","user32.dll,LockWorkStation")
TraySetToolTip("Sauvegarde en cours...")
ToolTip("** SAUVEGARDE EN COURS ...**"&@CRLF& " Veuillez Patienter !!")
TraySetIcon($Ico_Red) ;==> Affichage icone velvet_red, Sauvegarde En Cours
TraySetState()
Run("C:\WINDOWS\system32\wscript.exe "& $cmd_Prg,"",@SW_SHOW)
sleep (12000)
EndIf
AdlibRegister("_SaveEnCours",2000)
;Exit
EndFunc ;==> _LancerSauvegarde
Func _SaveEnCours()
if not FileExists ("en_cours.txt") Then
AdlibUnregister("_ChgIcone")
Trayseticon($Ico_Blue)
TraySetState()
ToolTip("")
TraySetToolTip("Sauvegarde")
endIf
EndFunc ;==> _SaveEnCours
Func _ChgIcone()
If $icone = "2" Then
TraySetIcon($Ico_Green)
TraySetState()
$icone = "0"
Else
TraySetIcon($Ico_Red)
TraySetState()
$icone = number($icone) + 1
EndIf
EndFunc
Je suppose que cela doit être un problème à ce niveau:
Code : Tout sélectionner
While 1 ../.. WEndSi je charge manuellement l'appli ma souris est fonctionnelle pour aller cliquer sur d'autre programme....
Par avance Merci

