Il permet aussi d'afficher une "info bulle" (via la touche "PAUSE") avec la dernière carte accédée, créé et modifiée, ainsi que la mesure du temps de latence (un simple "ping" vers un site). En gros, cela vous permet de savoir si, lorsque vous rejoignez une partie, vous avez oui ou non la carte (ce qui évite de bloquer tout le monde).
Changez les "Global Const" si besoin, notamment le mot de passe ! (Concernant le mot de passe, s'il est écrit en clair dans le script, il semble possible de le récupérer même après compilation. Voir "Pas d'information confidentielle dans vos scripts" : http://www.autoitscript.fr/forum/viewto ... 92&start=0)
Code : Tout sélectionner
#include <File.au3>
#include <Array.au3>
Global Const $MOT_DE_PASSE = "ENTREZ_VOTRE_MOT_DE_PASSE"
Global Const $STARCRAFT_EXE = "C:\Program Files\Starcraft\StarCraft.exe"
Global Const $STARCRAFT_REPERTOIRE_CARTES = "C:\Program Files\Starcraft\maps\download\"
Global Const $STARCRAFT_TITRE_FENETRE = "Brood War"
Global $coord
Global $pause
Local $taille
HotKeySet("{PAUSE}", "pause")
HotKeySet("^!{ESC}", "termineScript")
Opt("WinWaitDelay", 100)
Opt("WinTitleMatchMode", 4)
Opt("WinDetectHiddenText", 1)
Opt("MouseCoordMode", 0)
; exécute le jeu
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then
Run($STARCRAFT_EXE)
WinWait($STARCRAFT_TITRE_FENETRE, "")
If Not WinActive($STARCRAFT_TITRE_FENETRE, "") Then WinActivate($STARCRAFT_TITRE_FENETRE, "")
WinWaitActive($STARCRAFT_TITRE_FENETRE, "")
EndIf
; boucles pour automatiser le lancement jusqu'à l'affichage des parties en cours
While PixelChecksum(204, 165, 287, 204) <> 2616265089
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then Exit
Sleep(100)
WEnd
Sleep(100)
Send("!m")
While PixelChecksum(204, 165, 287, 204) <> 3600808116
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then Exit
Sleep(100)
WEnd
Sleep(100)
Send("!b")
While PixelChecksum(357, 42, 587, 279) <> 1190038825
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then Exit
Sleep(100)
WEnd
Sleep(100)
Send("{ENTER}")
WinWait("classname=SDlgDialog", "Changer d'&email")
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then Exit
Send($MOT_DE_PASSE)
Send("{ENTER}")
While WinActive("classname=SDlgDialog") <> 1
Sleep(10)
WEnd
Sleep(750)
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then Exit
Send("!r")
MouseMove(290, 150, 0)
; boucle tant que Stracraft n'est pas fermé
While 1
Sleep(1000)
If Not WinExists($STARCRAFT_TITRE_FENETRE) Then Exit
WEnd
; affiche une "info bulle" avec la dernière carte accédée, créé et modifiée,
; ainsi que la mesure du temps de latence ("ping" vers un site)
Func Principale()
Local $FileList = _FileListToArray($STARCRAFT_REPERTOIRE_CARTES)
Local $temp = $FileList[0] + 1
Dim $FileList_fichier[$temp]
Dim $FileList_date[$temp]
Dim $FileList_date_c[$temp]
Dim $FileList_date_m[$temp]
For $i = 1 To $FileList[0]
$t = FileGetTime($STARCRAFT_REPERTOIRE_CARTES & $FileList[$i], 2) ; date d'accès
$t_2 = FileGetTime($STARCRAFT_REPERTOIRE_CARTES & $FileList[$i], 1) ; date de création
$t_3 = FileGetTime($STARCRAFT_REPERTOIRE_CARTES & $FileList[$i], 0) ; date de modification
$date = $t[0] & $t[1] & $t[2] & $t[3] & $t[4] & $t[5]
$date_c = $t_2[0] & $t_2[1] & $t_2[2] & $t_2[3] & $t_2[4] & $t_2[5]
$date_m = $t_3[0] & $t_3[1] & $t_3[2] & $t_3[3] & $t_3[4] & $t_3[5]
$FileList_fichier[$i] = $FileList[$i]
$FileList_date[$i] = $date
$FileList_date_c[$i] = $date_c
$FileList_date_m[$i] = $date_m
Next
$temp = _ArrayMaxIndex($FileList_date, 1, 1)
$temp_2 = _ArrayMaxIndex($FileList_date_c, 1, 1)
$temp_3 = _ArrayMaxIndex($FileList_date_m, 1, 1)
$ping = Ping("yahoo.fr", 250) ; ping yahoo
ToolTip("Accès" & @TAB & @TAB & $FileList_fichier[$temp] & @CRLF & _
"Création" & @TAB & $FileList_fichier[$temp_2] & @CRLF & _
"Modification" & @TAB & $FileList_fichier[$temp_3] & @CRLF & _
"Ping" & @TAB & @TAB & $ping, 0, 0)
EndFunc ;==>Principale
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; met en pause le script
Func pause()
$pause = Not $pause
While $pause
Call("Principale")
WEnd
ToolTip("")
EndFunc ;==>TogglePause
; termine le script
Func termineScript()
Exit
EndFunc ;==>Terminate