[R] Blocage au chargement d'un programme
Posté : mar. 03 mai 2011 11:35
par ferrierd
Bonjour,
J'ai crée le programme suivant
Se programme est chargé au démarrage de la machine dans un script exécutant d'autres taches. Lorsque mon script arrive sur ce programme, celui-ci est bien chargé (apparition de la TrayIcone) mais ne redonne pas la main à la suite du script.
Je suppose que cela doit être un problème à ce niveau:
Mais je n'arrive pas à trouver. Si quelqu'un a une idée.
Si je charge manuellement l'appli ma souris est fonctionnelle pour aller cliquer sur d'autre programme....
Par avance Merci
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