[Ex] Process Manager

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
n0way
Niveau 2
Niveau 2
Messages : 26
Enregistré le : dim. 12 déc. 2010 20:15
Status : Hors ligne

[Ex] Process Manager

#1

Message par n0way »

Voilà, je m'ennuyais un petit peu, et pour continuer à apprendre, je me suis dit pourquoi pas faire un "Process Manager", c'est à dire un programme où on pourrait ajouter 5 (maxi) programme à lancer lors de notre absence (10mins d'absence mini) ... et de les fermer a notre retour.

Donc par exemple : Lancer uTorrent , et d'autres pendant notre absence... et a notre retour les fermer.

Code : Tout sélectionner


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Process.au3>
#include <Timers.au3>

;--------- variable ----------

Global $inifile = @WorkingDir & "\config.ini"
$var = 0
$mousex = 0
$mousey = 0
$IdleMinimum = 600000


Opt("TrayMenuMode", 0)
TrayTip("Process Manager v1.0b", "is loaded.", 30)

;--------- GUI ---------------


Global $Form1 = GUICreate("Process Manager", 449, 255, 192, 124)
GUISetIcon("icone\devico.ico")
GUISetFont(9, 400, 0, "Tahoma")

Global $Label1 = GUICtrlCreateLabel("Process Manager", 176, 8, 116, 20)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma")

Global $Saisie1 = GUICtrlCreateInput("Chemin d'accès du programme", 8, 56, 249, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
Global $ButtonPAR1 = GUICtrlCreateButton("Parcourir", 272, 54, 75, 25, $WS_GROUP)
Global $ButtonON1 = GUICtrlCreateButton("ON", 360, 54, 75, 25, $WS_GROUP)

Global $Saisie2 = GUICtrlCreateInput("Chemin d'accès du programme", 8, 96, 249, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
Global $ButtonPAR2 = GUICtrlCreateButton("Parcourir", 272, 94, 75, 25, $WS_GROUP)
Global $ButtonON2 = GUICtrlCreateButton("ON", 360, 94, 75, 25, $WS_GROUP)

Global $Saisie3 = GUICtrlCreateInput("Chemin d'accès du programme", 8, 136, 249, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
Global $ButtonPAR3 = GUICtrlCreateButton("Parcourir", 272, 134, 75, 25, $WS_GROUP)
Global $ButtonON3 = GUICtrlCreateButton("ON", 360, 134, 75, 25, $WS_GROUP)

Global $Saisie4 = GUICtrlCreateInput("Chemin d'accès du programme", 8, 176, 249, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
Global $ButtonPAR4 = GUICtrlCreateButton("Parcourir", 272, 174, 75, 25, $WS_GROUP)
Global $ButtonON4 = GUICtrlCreateButton("ON", 360, 174, 75, 25, $WS_GROUP)

Global $Saisie5 = GUICtrlCreateInput("Chemin d'accès du programme", 8, 216, 249, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
Global $ButtonPAR5 = GUICtrlCreateButton("Parcourir", 272, 214, 75, 25, $WS_GROUP)
Global $ButtonON5 = GUICtrlCreateButton("ON", 360, 214, 75, 25, $WS_GROUP)

GUISetState(@SW_SHOW)

;-------------- Charger le fichier .ini --------------

if Not FileExists($inifile) Then
    _FileCreate($inifile)
    IniWriteSection($inifile, "Process1", "dir=" & @LF & "proc=" & @LF & "on=" & @LF & @LF)
    IniWriteSection($inifile, "Process2", "dir=" & @LF & "proc=" & @LF & "on=" & @LF & @LF)
    IniWriteSection($inifile, "Process3", "dir=" & @LF & "proc=" & @LF & "on=" & @LF & @LF)
    IniWriteSection($inifile, "Process4", "dir=" & @LF & "proc=" & @LF & "on=" & @LF & @LF)
    IniWriteSection($inifile, "Process5", "dir=" & @LF & "proc=" & @LF & "on=" & @LF & @LF)
    Sleep(2000)
EndIf

if IniRead($inifile, "Process1", "dir", "") <> "" Then
    GuiCtrlSetData($Saisie1, IniRead($inifile, "Process1", "dir", ""))

    if IniRead($inifile, "Process1", "on", "") = 1 Then
        GuiCtrlSetBkColor($Saisie1, 0x008000)
        GuiCtrlSetData($ButtonON1, "OFF")
    EndIf
    if Iniread($inifile, "Process1", "on", "") = 0 Then
        GuiCtrlSetBkColor($Saisie1, 0x800000)
    EndIf

EndIf

if IniRead($inifile, "Process2", "dir", "") <> "" Then
    GuiCtrlSetData($Saisie2, IniRead($inifile, "Process2", "dir", ""))

    if IniRead($inifile, "Process2", "on", "") = 1 Then
        GuiCtrlSetBkColor($Saisie2, 0x008000)
        GuiCtrlSetData($ButtonON2, "OFF")
    EndIf
    if Iniread($inifile, "Process2", "on", "") = 0 Then
        GuiCtrlSetBkColor($Saisie2, 0x800000)
    EndIf

EndIf

if IniRead($inifile, "Process3", "dir", "") <> "" Then
    GuiCtrlSetData($Saisie3, IniRead($inifile, "Process3", "dir", ""))

    if IniRead($inifile, "Process3", "on", "") = 1 Then
        GuiCtrlSetBkColor($Saisie3, 0x008000)
        GuiCtrlSetData($ButtonON3, "OFF")
    EndIf
    if Iniread($inifile, "Process3", "on", "") = 0 Then
        GuiCtrlSetBkColor($Saisie3, 0x800000)
    EndIf

EndIf

if IniRead($inifile, "Process4", "dir", "") <> "" Then
    GuiCtrlSetData($Saisie4, IniRead($inifile, "Process4", "dir", ""))

    if IniRead($inifile, "Process4", "on", "") = 1 Then
        GuiCtrlSetBkColor($Saisie4, 0x008000)
        GuiCtrlSetData($ButtonON4, "OFF")
    EndIf
    if Iniread($inifile, "Process4", "on", "") = 0 Then
        GuiCtrlSetBkColor($Saisie4, 0x800000)
    EndIf

EndIf

if IniRead($inifile, "Process5", "dir", "") <> "" Then
    GuiCtrlSetData($Saisie5, IniRead($inifile, "Process5", "dir", ""))

    if IniRead($inifile, "Process5", "on", "") = 1 Then
        GuiCtrlSetBkColor($Saisie5, 0x008000)
        GuiCtrlSetData($ButtonON5, "OFF")
    EndIf
    if Iniread($inifile, "Process5", "on", "") = 0 Then
        GuiCtrlSetBkColor($Saisie5, 0x800000)
    EndIf

EndIf

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

;------------- PARCOURIR ----------------;

        Case $ButtonPAR1
            $src = FileOpenDialog("Chemin de l'éxecutable", @ProgramFilesDir, "Executable (*.exe)", 1)
            if Not $src = "" Then
                $file = StringSplit($src, "\")
                GuiCtrlSetData($Saisie1, $src)
                IniWrite($inifile, "Process1", "dir", $src)
                IniWrite($inifile, "Process1", "proc", $file[$file[0]])
            EndIf
        Case $ButtonPAR2
            $src = FileOpenDialog("Chemin de l'éxecutable", @ProgramFilesDir, "Executable (*.exe)", 1)
            if Not $src = "" Then
                $file = StringSplit($src, "\")
                GuiCtrlSetData($Saisie2, $src)
                IniWrite($inifile, "Process2", "dir", $src)
                IniWrite($inifile, "Process2", "proc", $file[$file[0]])
            EndIf
        Case $ButtonPAR3
            $src = FileOpenDialog("Chemin de l'éxecutable", @ProgramFilesDir, "Executable (*.exe)", 1)
            if Not $src = "" Then
                $file = StringSplit($src, "\")
                GuiCtrlSetData($Saisie3, $src)
                IniWrite($inifile, "Process3", "dir", $src)
                IniWrite($inifile, "Process3", "proc", $file[$file[0]])
            EndIf
        Case $ButtonPAR4
            $src = FileOpenDialog("Chemin de l'éxecutable", @ProgramFilesDir, "Executable (*.exe)", 1)
            if Not $src = "" Then
                $file = StringSplit($src, "\")
                GuiCtrlSetData($Saisie4, $src)
                IniWrite($inifile, "Process4", "dir", $src)
                IniWrite($inifile, "Process4", "proc", $file[$file[0]])
            EndIf
        Case $ButtonPAR5
            $src = FileOpenDialog("Chemin de l'éxecutable", @ProgramFilesDir, "Executable (*.exe)", 1)
            if Not $src = "" Then
                $file = StringSplit($src, "\")
                GuiCtrlSetData($Saisie5, $src)
                IniWrite($inifile, "Process5", "dir", $src)
                IniWrite($inifile, "Process5", "proc", $file[$file[0]])
            EndIf

;-------------- ON / OFF ----------------

        Case $ButtonON1
            if GuiCTrlRead($Saisie1) <> "Chemin d'accès du programme" Then

                if GuiCtrlRead($ButtonON1) = "ON" Then
                    GUICtrlSetBkColor($Saisie1, 0x008000)
                    GuiCtrlSetData($ButtonON1, "OFF")
                    IniWrite($inifile, "Process1", "on", "1")
                Else
                    GUICtrlSetBkColor($Saisie1, 0x800000)
                    GuiCtrlSetData($ButtonON1, "ON")
                    IniWrite($inifile, "Process1", "on", "0")
                EndIf
            Else
                msgBox(1, "Erreur", "Tu n'a pas spécifié d'éxécutable")
            EndIf

        Case $ButtonON2
            if GuiCTrlRead($Saisie2) <> "Chemin d'accès du programme" Then

                if GuiCtrlRead($ButtonON2) = "ON" Then
                    GUICtrlSetBkColor($Saisie2, 0x008000)
                    GuiCtrlSetData($ButtonON2, "OFF")
                    IniWrite($inifile, "Process2", "on", "1")
                Else
                    GUICtrlSetBkColor($Saisie2, 0x800000)
                    GuiCtrlSetData($ButtonON2, "ON")
                    IniWrite($inifile, "Process2", "on", "0")
                EndIf
            Else
                msgBox(1, "Erreur", "Tu n'a pas spécifié d'éxécutable")
            EndIf

        Case $ButtonON3
            if GuiCTrlRead($Saisie3) <> "Chemin d'accès du programme" Then

                if GuiCtrlRead($ButtonON3) = "ON" Then
                    GUICtrlSetBkColor($Saisie3, 0x008000)
                    GuiCtrlSetData($ButtonON3, "OFF")
                    IniWrite($inifile, "Process3", "on", "1")
                Else
                    GUICtrlSetBkColor($Saisie3, 0x800000)
                    GuiCtrlSetData($ButtonON3, "ON")
                    IniWrite($inifile, "Process3", "on", "0")
                EndIf
            Else
                msgBox(1, "Erreur", "Tu n'a pas spécifié d'éxécutable")
            EndIf

        Case $ButtonON4
            if GuiCTrlRead($Saisie4) <> "Chemin d'accès du programme" Then

                if GuiCtrlRead($ButtonON4) = "ON" Then
                    GUICtrlSetBkColor($Saisie4, 0x008000)
                    GuiCtrlSetData($ButtonON4, "OFF")
                    IniWrite($inifile, "Process4", "on", "1")
                Else
                    GUICtrlSetBkColor($Saisie4, 0x800000)
                    GuiCtrlSetData($ButtonON4, "ON")
                    IniWrite($inifile, "Process4", "on", "0")
                EndIf
            Else
                msgBox(1, "Erreur", "Tu n'a pas spécifié d'éxécutable")
            EndIf

        Case $ButtonON5
            if GuiCTrlRead($Saisie5) <> "Chemin d'accès du programme" Then

                if GuiCtrlRead($ButtonON5) = "ON" Then
                    GUICtrlSetBkColor($Saisie5, 0x008000)
                    GuiCtrlSetData($ButtonON5, "OFF")
                    IniWrite($inifile, "Process5", "on", "1")
                Else
                    GUICtrlSetBkColor($Saisie5, 0x800000)
                    GuiCtrlSetData($ButtonON5, "ON")
                    IniWrite($inifile, "Process5", "on", "0")
                EndIf
            Else
                msgBox(1, "Erreur", "Tu n'a pas spécifié d'éxécutable")
            EndIf




    EndSwitch

    ;------------- IDLE CHECKER AND ACTIONNER ------------;

    If _Timer_GetIdleTime() >= $IdleMinimum Then

        $proc1on = iniRead($inifile, "Process1", "on", "")
        $proc2on = iniRead($inifile, "Process2", "on", "")
        $proc3on = iniRead($inifile, "Process3", "on", "")
        $proc4on = iniRead($inifile, "Process4", "on", "")
        $proc5on = iniRead($inifile, "Process5", "on", "")
        $proc1 = iniRead($inifile, "Process1", "proc", "")
        $proc2 = iniRead($inifile, "Process2", "proc", "")
        $proc3 = iniRead($inifile, "Process3", "proc", "")
        $proc4 = iniRead($inifile, "Process4", "proc", "")
        $proc5 = iniRead($inifile, "Process5", "proc", "")

        $var = 1
        $mousex = MouseGetPos(0)
        $mousey = MouseGetPos(1)


        If $proc1on = 1 Then
                ShellExecute(iniRead($inifile, "Process1", "dir", ""))
        EndIf

        If $proc2on = 1 Then
                ShellExecute(iniRead($inifile, "Process2", "dir", ""))
        EndIf

        if $proc3on = 1 Then
                ShellExecute(iniRead($inifile, "Process3", "dir", ""))
        EndIf

        if $proc4on = 1 Then
                ShellExecute(iniRead($inifile, "Process4", "dir", ""))
        EndIf


        if $proc5on = 1 Then
                ShellExecute(iniRead($inifile, "Process5", "dir", ""))
        EndIf


        Do
            Sleep(20)
        Until _Timer_GetIdleTime() < $IdleMinimum
    EndIf
    Sleep(20)

    If $var = 1 And $mousex <> MouseGetPos(0) And $mousey <> MouseGetPos(1) Then
        If ProcessExists($proc1) Then
            ProcessClose($proc1)
        EndIf

        If ProcessExists($proc2) Then
            ProcessClose($proc2)
        EndIf

        If ProcessExists($proc3) Then
            ProcessClose($proc3)
        EndIf

        If ProcessExists($proc4) Then
            ProcessClose($proc4)
        EndIf

        If ProcessExists($proc5) Then
            ProcessClose($proc5)
        EndIf


    EndIf
WEnd


 
Vous pouvez trouver ici : http://n3m3s1s.free.fr/MonRepertoire/ProcessManager.rar le pack "source + icone + executable + ini"
Répondre