#NoTrayIcon #RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=..\Image\Dialle Icone.ico #AutoIt3Wrapper_Outfile=Diall V2.5.exe #AutoIt3Wrapper_Outfile_x64=Diall V2.5 (x64).exe #AutoIt3Wrapper_Compile_Both=y #AutoIt3Wrapper_Res_Description=Logiciel de T'Chat Ordinateur à Ordinateur par Internet #AutoIt3Wrapper_Res_Fileversion=2.5.0.39 #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y #AutoIt3Wrapper_Res_ProductVersion=2.0 #AutoIt3Wrapper_Res_LegalCopyright=Légal Copyright 2012 #AutoIt3Wrapper_Res_SaveSource=y #AutoIt3Wrapper_Res_Language=1036 #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker #AutoIt3Wrapper_Res_Field=Créer par|Bataille Lionel (Popwers) #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ; *** Start added by AutoIt3Wrapper *** #include ; *** End added by AutoIt3Wrapper *** #cs ---------------------------------------------------------------------------- AutoIt Version : 3.3.8.1 Auteur: Bataille Lionel Fonction du Script : T'Chat ordinateur à ordinateur par TCP. #ce ---------------------------------------------------------------------------- ;~ On démarre les services et déclare les variables #include #include #include #include #include #include #include #include #include #include Global $PID,$PID2 ;~ Vérifie si l'utilisateur n'a pas renommer le fichier If @Compiled = 1 Then If @AutoItX64 = 1 Then If @ScriptName <> "Diall V2.5 (x64).exe" Then MsgBox(0,"Erreur","Veuiller renommer le fichier en sa valeur d'origine: Diall V2.5 (x64).exe (si le .exe n'apparait pas, ne le rajouter pas !)") Exit EndIf Else If @ScriptName <> "Diall V2.5.exe" Then MsgBox(0,"Erreur","Veuiller renommer le fichier en sa valeur d'origine: Diall V2.5.exe (si le .exe n'apparait pas, ne le rajouter pas !)") Exit EndIf EndIf EndIf ;~ Vérifie si le logiciel n'est pas déjà utiliser $PID = ProcessExists("Diall V2.5 (x64).exe") If $PID <> 0 Then If $PID <> @AutoItPID Then MsgBox(0,"Erreur","Diall est déjà en cour d'exécution") Exit EndIf EndIf $PID2 = ProcessExists("Diall V2.5.exe") If $PID2 <> 0 Then If $PID2 <> @AutoItPID Then MsgBox(0,"Erreur","Diall est déjà en cour d'exécution") Exit EndIf EndIf ;~ Déclarations et définitions des variables $ComC = 0 $comter = 0 $comterChex = 0 $GuiT = 0 Global $FileSendF,$FileSendTCP,$FileSend,$NomC,$N $nPORT = 49562 Global $MainSocket, $ConnectedSocket = -1, $szData Global $recv Global $DszIPADDRESS Global $FileNameR, $Extension, $Wit, $FileName $timer = TimerInit() If Not FileExists("Conf.INI") Then Iniwrite("Conf.INI","LIST","Default",""&@CRLF) Iniwrite("Conf.INI","CONF","Name","") Iniwrite("Conf.INI","CONF","IP","R"&@CRLF) Iniwrite("Conf.INI","THEME","Theme",""&@CRLF) Iniwrite("Conf.INI","MEMO","Memo",""&@CRLF) EndIf $IPC = IniRead("Conf.INI","CONF","IP","R") If $IPC = "R" Then $CIP = 1 Global $szIPADDRESS = _GetIP() Else $CIP = 0 Global $szIPADDRESS = @IPAddress1 EndIf TCPStartup() If @error Then MsgBox(0,"Erreur","Une Erreur est survenue nous sommes désolé de se dérangement") Exit EndIf $MainSocket = TCPListen($szIPADDRESS,$nPORT) If $MainSocket = -1 Then If @error = 2 Then MsgBox(0, "Erreur", "Erreur, le port n'est pas correcte !"&@CRLF&"Votre connexion internet n'est pas utilisable ou couper."&@CRLF&"Veuillez vérifier vos ports !") Exit ElseIf @error = 1 Then MsgBox(0, "Erreur", "Erreur, Votre IP n'est pas correcte !"&@CRLF&"Votre connexion internet n'est pas utilisable ou couper."&@CRLF&"Si des Téléchargement sont en cour Veuillez les interrompre pour utiliser Diall") Exit EndIf EndIf ;~ Définie un nom d'utilisateur si il n'y en na pas un déjà enregistré $SearchN = IniRead("Conf.INI","CONF","Name","Not") While 1 If $SearchN = "Not" Or $SearchN = "" Then $NomUti = InputBox("Information","Entrez un nom d'utilisateur - Cela permet de savoir Qui est la personne qui communique ",""," M20") If Not @error Then If $NomUti <> "" Then IniWriteSection("Conf.INI","CONF","Name="&$NomUti) $SearchN = $NomUti ExitLoop EndIf ElseIf @error Then Exit EndIf Else ExitLoop EndIf WEnd ;~ On créer l'interface graphique en mode événementiel Opt("GUICloseOnESC", 1) Opt("GUIOnEventMode", 1) #Region ### START Koda GUI section ### FormPrincipal Global $Form1 = GUICreate("Diall V2.5 - "&$SearchN, 806, 355, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP)) GUISetFont(10, 800, 0, "Comic Sans MS") ;~ Définie le fond suivant ce que l'utilisateur avait mis auparavant $Couleur = IniRead("Conf.INI","THEME","Theme","Not") If $Couleur = "BleuClaire" Then GUISetBkColor(0x00FFFF) ElseIf $Couleur = "BleuFoncé" Then GUISetBkColor(0x0000FF) ElseIf $Couleur = "Rouge" Then GUISetBkColor(0xFF0000) ElseIf $Couleur = "Vert" Then GUISetBkColor(0x00FF00) ElseIf $Couleur = "Jaune" Then GUISetBkColor(0xFFFF00) ElseIf $Couleur = "Rose" Then GUISetBkColor(0xFF00FF) ElseIf $Couleur = "Blanc" Then GUISetBkColor(0xFFFFFF) Else GUISetBkColor(0xFFFFFF) EndIf Global $MenuItem4 = GUICtrlCreateMenu("List d'Ami(s)") Global $MenuItem5 = GUICtrlCreateMenuItem("Enregistrer un nouvelle ami", $MenuItem4, -1) GUICtrlSetOnEvent(-1, "MenuItem5Click") Global $MenuItem7 = GUICtrlCreateMenuItem("Supprimer un ami", $MenuItem4, -1) GUICtrlSetOnEvent(-1, "MenuItem7Click") Global $MenuItem8 = GUICtrlCreateMenu("&Préférence") Global $MenuItem9 = GUICtrlCreateMenu("Thème", $MenuItem8) Global $MenuItem11 = GUICtrlCreateMenuItem("Blanc", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem11Click") Global $MenuItem12 = GUICtrlCreateMenuItem("Bleu Claire", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem12Click") Global $MenuItem13 = GUICtrlCreateMenuItem("Bleu Foncé", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem13Click") Global $MenuItem14 = GUICtrlCreateMenuItem("Jaune", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem14Click") Global $MenuItem15 = GUICtrlCreateMenuItem("Rouge", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem15Click") Global $MenuItem16 = GUICtrlCreateMenuItem("Rose", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem16Click") Global $MenuItem17 = GUICtrlCreateMenuItem("Vert", $MenuItem9) GUICtrlSetOnEvent(-1, "MenuItem17Click") Global $MenuItem10 = GUICtrlCreateMenuItem("Changer le nom d'utilisateur", $MenuItem8) GUICtrlSetOnEvent(-1, "MenuItem10Click") Global $MenuItemR = GUICtrlCreateMenuItem("Réinitialiser Diall", $MenuItem8) GUICtrlSetOnEvent(-1, "MenuItemRClick") Global $MenuItem = GUICtrlCreateMenu("Connexion") Global $MenuItemIP1 = GUICtrlCreateMenuItem("Connexion sur le réseau privé...", $MenuItem) GUICtrlSetOnEvent(-1, "MenuItemIP1Click") Global $MenuItemIP2 = GUICtrlCreateMenuItem("Connexion sur le réseau...", $MenuItem) GUICtrlSetOnEvent(-1, "MenuItemIP2Click") GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close") GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize") GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1MAXIMIZE") GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore") Global $Group1 = GUICtrlCreateGroup("Information ", 8, 0, 217, 97) Global $Label1 = GUICtrlCreateLabel("Votre Ip : "&$szIPADDRESS, 16, 24, 199, 23) Global $Label2 = GUICtrlCreateLabel("Connexion : Déconnecter", 16, 72, 201, 23) Global $Label3 = GUICtrlCreateLabel("Connecter à : Personne", 16, 48, 205, 23) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Group2 = GUICtrlCreateGroup("Connexion", 232, 0, 377, 60) Global $Label4 = GUICtrlCreateLabel("Ip du destinataire :", 240, 24, 128, 23) Global $IPAddress1 = GUICtrlCreateInput("0.0.0.0", 368, 24, 138, 23) Global $Button1 = GUICtrlCreateButton("Se connecter", 512, 24, 91, 25) GUICtrlSetCursor (-1, 0) GUICtrlSetOnEvent(-1, "Button1Click") GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Group4 = GUICtrlCreateGroup("T'Chat", 8, 120, 601, 209) Global $Edite1 = GUICtrlCreateEdit("", 16, 144, 585, 145, BitOR($GUI_SS_DEFAULT_EDIT,$ES_READONLY)) GUICtrlSetData(-1, "") Global $Inpute1 = GUICtrlCreateInput("", 16, 296, 497, 27) GUICtrlSetCursor (-1, 5) Global $Buttone1 = GUICtrlCreateButton("Envoyer", 520, 296, 83, 25) GUICtrlSetOnEvent(-1, "Buttone1Click") GUICtrlSetCursor (-1, 0) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Group5 = GUICtrlCreateGroup("Connecter", 616, 0, 185, 153) Global $List1 = GUICtrlCreateList("", 624, 24, 169, 120, BitOR($LBS_NOTIFY,$LBS_SORT,$WS_VSCROLL)) GUICtrlSetOnEvent(-1, "ListClick") GUICtrlSetData(-1, "") GUICtrlSetCursor (-1, 0) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Group6 = GUICtrlCreateGroup("Hors-Ligne", 616, 160, 185, 169) Global $List2 = GUICtrlCreateList("", 624, 184, 169, 139, BitOR($LBS_NOTIFY,$LBS_SORT,$WS_VSCROLL)) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Group7 = GUICtrlCreateGroup("Mémo", 232, 64, 377, 57) $Memo = IniRead("Conf.INI","MEMO","Memo","") Global $Input2 = GUICtrlCreateInput($Memo, 240, 88, 361, 27) GUICtrlSetOnEvent(-1, "Input2Change") GUICtrlSetState($Group4,$GUI_DISABLE) GUICtrlSetState($Edite1,$GUI_DISABLE) GUICtrlSetState($Inpute1,$GUI_DISABLE) GUICtrlSetState($Buttone1,$GUI_DISABLE) Connexion() GUISetState(@SW_SHOW,$Form1) #EndRegion ### END Koda GUI section ### ;~ On attend une connexion ou un message While 1 If TimerDiff($timer) >= 5000 Then $ReadSec = IniReadSection("Conf.INI","LIST") For $i = 1 to $ReadSec[0][0] $ValeurC = $ReadSec[$i][1] $CleC = $ReadSec[$i][0] $TestPing = WMI_Ping($ValeurC,32,false,0,true) If $TestPing <> 0 Then $InDexE = _GUICtrlListBox_FindInText($List1,$CleC) If $InDexE = -1 Then ; si pas dans list1 _GUICtrlListBox_BeginUpdate($List1) _GUICtrlListBox_AddString($List1,$CleC&"("&$ValeurC&")") _GUICtrlListBox_EndUpdate($List1) EndIf $InDex = _GUICtrlListBox_FindInText($List2,$CleC) If $InDex <> -1 Then ; si dans list2 _GUICtrlListBox_DeleteString($List2,$InDex) EndIf Else $InDexE = _GUICtrlListBox_FindInText($List2,$CleC) If $InDexE = -1 Then ; si pas dans list2 _GUICtrlListBox_BeginUpdate($List2) _GUICtrlListBox_AddString($List2,$CleC) _GUICtrlListBox_EndUpdate($List2) EndIf $InDex = _GUICtrlListBox_FindInText($List1,$CleC) If $InDex <> -1 Then ; si dans list1 _GUICtrlListBox_DeleteString($List1,$InDex) EndIf EndIf Next $timer = TimerInit() EndIf If $ConnectedSocket = -1 Then $ConnectedSocket = TCPAccept($MainSocket) If $ConnectedSocket <> -1 Then $szIP_Accepted = SocketToIP($ConnectedSocket) If GUICtrlGetState($Group2) <> 144 Then GUICtrlSetState($Group2,$GUI_DISABLE) GUICtrlSetState($Button1,$GUI_DISABLE) EndIf If GUICtrlGetState($Group4) <> 80 Then GUICtrlSetData($Label3,"Connecté à: "&$szIP_Accepted) GUICtrlSetData($Label2,"Connexion : Connecter") GUICtrlSetState($Group4,$GUI_ENABLE) GUICtrlSetState($Edite1,$GUI_ENABLE) GUICtrlSetState($Inpute1,$GUI_ENABLE) GUICtrlSetState($Buttone1,$GUI_ENABLE) EndIf EndIf Else $recv = TCPRecv($ConnectedSocket, 20480) If @error Then $ConnectedSocket = -1 MsgBox(0, "Erreur 2", "Une Erreur est survenue lors de la lecture des données reçu.") GUICtrlSetState($Group2,$GUI_ENABLE) GUICtrlSetState($IPAddress1,$GUI_ENABLE) GUICtrlSetState($Button1,$GUI_ENABLE) GUICtrlSetState($Group4,$GUI_DISABLE) GUICtrlSetState($Edite1,$GUI_DISABLE) GUICtrlSetState($Inpute1,$GUI_DISABLE) GUICtrlSetState($Buttone1,$GUI_DISABLE) GUICtrlSetData($Label3,"Connecté à: Personne") GUICtrlSetData($Label2,"Connexion : Déconnecter") ElseIf $recv <> "" Then GUICtrlSetData($Edite1,$recv & @CRLF & GUICtrlRead($Edite1)) EndIf EndIf WEnd Func Form1MAXIMIZE() GUISetState(@SW_MAXIMIZE) EndFunc #cs -------------------------------------------------------------------------------------- Bouton de connexion : Reçoit l'ip entré par l'utilisateur et essaye de se connecter. | #ce -------------------------------------------------------------------------------------- Func Button1Click() $DszIPADDRESS = GUICtrlRead($IPAddress1) If $DszIPADDRESS <> "" Then $ConnectedSocket = TCPConnect($DszIPADDRESS, $nPORT) If @error Then TCPCloseSocket($ConnectedSocket) MsgBox(0,"Connexion","Aucun réponse.") ElseIf Not @error Then GUICtrlSetState($Group2,$GUI_DISABLE) GUICtrlSetState($IPAddress1,$GUI_DISABLE) GUICtrlSetState($Button1,$GUI_DISABLE) GUICtrlSetData($Label2,"Connexion : Connecter") GUICtrlSetData($Label3,"Connecté à: "&$DszIPADDRESS) GUICtrlSetState($Group4,$GUI_ENABLE) GUICtrlSetState($Edite1,$GUI_ENABLE) GUICtrlSetState($Inpute1,$GUI_ENABLE) GUICtrlSetState($Buttone1,$GUI_ENABLE) EndIf Else MsgBox(0,"Connexion","Veuillez entrer une IP") EndIf GUICtrlSetData($IPAddress1,"0.0.0.0") EndFunc #cs -------------------------------------------------------------------------------------- Bouton d’envoi de message : Envoie un message | #ce -------------------------------------------------------------------------------------- Func Buttone1Click() $szData = GUICtrlRead($Inpute1) If $szData <> "" Then $szData = $SearchN & " > " & $szData TCPSend($ConnectedSocket, $szData) If Not @error Then GUICtrlSetData($Edite1,$szData & @CRLF & GUICtrlRead($Edite1)) GUICtrlSetData($Inpute1,"") ElseIf @error Then MsgBox(0, "Erreur 4", "Erreur d’Envoi, vous pouvez réessayer !"&@CRLF&@error) EndIf EndIf EndFunc ;~ Ferme tous Func Form1Close() TCPSend($ConnectedSocket, $szIPADDRESS&"("&$SearchN&")"&" A quitter.") If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket) EndIf TCPShutdown() Exit EndFunc ;~ Minimise la fenêtre Func Form1Minimize() GUISetState(@SW_MINIMIZE) EndFunc ;~ Restaure la fenêtre Func Form1Restore() GUISetState(@SW_RESTORE) EndFunc ;~ Enregistre un nouvel ami Func MenuItem5Click() $Nom = InputBox("Ajout","Entrer le nom de votre amis") If Not @error Then ; Si on n'appuie pas sur le bouton cancel on continue $NIp = InputBox("Ajout","Entrer l'IP de votre amis") If Not @error Then If $NIp <> "Default" Then IniWrite("Conf.INI","LIST",$Nom,$NIp) MsgBox(0,"Ajout","Votre amis a bien était enregistrer") Else MsgBox(0,"Ajout","Default est utiliser par Diall, vous ne pouvez pas le modifier ou le supprimer") EndIf EndIf EndIf $Nom = "" $NIp = "" EndFunc ;~ Supprime un ami de la liste des enregistré Func MenuItem7Click() $ReadSec = IniReadSection("Conf.INI","LIST") $Sup = InputBox("Suppression","Entrer le nom de la personne que vous voulez supprimer") If Not @error Then For $i = 1 To $ReadSec[0][0] ; on s'apprête à lire toutes les lignes de la section $Cle = $ReadSec[$i][0] $Valeur = $ReadSec[$i][1] If $Sup = $Cle And $Cle <> "" Then If $Cle <> "Default" Then $T = 1 $accor = MsgBox(4,"Suppression","Êtes-vous sur de vouloir supprimer "&$Cle&" ?") If $accor = 6 Then IniDelete("Conf.INI","LIST",$Cle) $InDexS = _GUICtrlListBox_FindInText($List1,$Cle) If $InDexS <> -1 Then _GUICtrlListBox_DeleteString($List1,$InDexS) EndIf $InDexS2 = _GUICtrlListBox_FindInText($List2,$Cle) If $InDexS2 <> -1 Then _GUICtrlListBox_DeleteString($List2,$InDexS2) EndIf EndIf Else $T = 0 EndIf EndIf Next If $T <> 1 Then MsgBox(0,"Information","Nous n'avons pas trouvé votre amis dans la liste des enregistrés, ou vous avez rentré un nom invalide") ElseIf $T = 1 Then MsgBox(0,"Information","Votre amis à bien était supprimé de votre liste d'amis !") $T = 0 EndIf EndIf EndFunc ;~ Permet de changer le nom d'utilisateur Func MenuItem10Click() $NomUti = InputBox("Information","Entrez votre nouveau nom d'utilisateur",""," M20") If Not @error Then IniWrite("Conf.INI","CONF","Name",$NomUti) $SearchN = $NomUti WinSetTitle("Diall V2.5 -","","Diall V2.5 - "&$SearchN) EndIf EndFunc ;~ Démarrage, Teste le ping pour trouver les connectés Func Connexion() If $CIP = 0 Then GUICtrlSetState($MenuItemIP1,$GUI_DISABLE) ElseIf $CIP = 1 Then GUICtrlSetState($MenuItemIP2,$GUI_DISABLE) EndIf $ProC = 0 ProgressOn("Démarrage","Ouverture en Cour","0%") $ProC = 5 ProgressSet($ProC,$ProC&"%","Lecture de la liste des enregistrés...") $ReadSec = IniReadSection("Conf.INI","LIST") ProgressSet(50,"50%","Connexion en cour...") For $i = 1 to $ReadSec[0][0] ProgressSet(75,"75%","Test de Connexion à "&$ReadSec[$i][0]) $ValeurC = $ReadSec[$i][1] $CleC = $ReadSec[$i][0] $TestPing = WMI_Ping($ValeurC,32,false,0,true) If $TestPing <> 0 Then GUICtrlSetData($List1,@CRLF&$CleC&"("&$ValeurC&")") Else GUICtrlSetData($List2,@CRLF&$CleC) EndIf Next $ProC = 100 ProgressSet($ProC,$ProC&"%","Ouverture...") Sleep(1000) ProgressOff() $ProC = 0 EndFunc ;~ Réinitialise Diall Func MenuItemRClick() $Reini = MsgBox(1,"Réinitialisation","Ceci rendras le programme a c'est valeur par défaut êtes-vous sur de vouloir continuez ?") If $Reini = 1 Then FileDelete("Conf.INI") MsgBox(0,"Information","Le programme va redémarrer dans 3seconde",3) If @AutoItX64 = 1 Then ShellExecute("Diall V2.5 (x64).exe") Else ShellExecute("Diall V2.5.exe") EndIf Exit EndIf EndFunc ;~ Défini une couleur de fond et l'enregistre Func Input2Change() $DataI = GUICtrlRead($Input2) IniWriteSection("Conf.INI","MEMO","Memo="&$DataI) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem11Click() IniWriteSection("Conf.INI","THEME","Theme=Blanc") GUISetBkColor(0xFFFFFF,$Form1) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem12Click() IniWriteSection("Conf.INI","THEME","Theme=BleuClaire") GUISetBkColor(0x00FFFF,$Form1) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem13Click() IniWriteSection("Conf.INI","THEME","Theme=BleuFoncé") GUISetBkColor(0x0000FF,$Form1) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem14Click() IniWriteSection("Conf.INI","THEME","Theme=Jaune") GUISetBkColor(0xFFFF00,$Form1) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem15Click() IniWriteSection("Conf.INI","THEME","Theme=Rouge") GUISetBkColor(0xFF0000,$Form1) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem16Click() IniWriteSection("Conf.INI","THEME","Theme=Rose") GUISetBkColor(0xFF00FF,$Form1) EndFunc ;~ Défini une couleur de fond et l'enregistre Func MenuItem17Click() IniWriteSection("Conf.INI","THEME","Theme=Vert") GUISetBkColor(0x00FF00,$Form1) EndFunc #cs -------------------------------------------------------------------------------------------------------- Name: WMI_Ping Description: Ping a remote computer via WMI Author: WeaponX Parameters: (6 - Str,Int,Bool,Int,Bool,Str) Address (String) - Hostname, IPv4 address, or IPv6 address (Vista only) BufferSize (Integer) - Buffer size sent with the Ping command. The default value is 32. NoFragmentation (Boolean) - If TRUE, "Do not Fragment" is marked on the packets sent. The default is FALSE, not fragmented. RecordRoute (Integer) - How many hops should be recorded while the packet is in route. The default is 0 (zero). ResolveAddressNames (Boolean) - Command resolves address names of output address values. The default is FALSE, which indicates no resolution. SourceRoute (String) - Comma-separated list of valid Source Routes. The default is "". Return: (Int) Success - Response time in milliseconds Failure - Status code and @ERROR = 1 Failure creating object - 0 and @ERROR = 2 #ce -------------------------------------------------------------------------------------------------------- Func WMI_Ping($sAddress = "127.0.0.1", $iBufferSize = 32, $bNoFragmentation = False, $iRecordRoute = 0, $bResolveAddressNames = False, $sSourceRoute = "") Local $colItems = "", $strComputer = "localhost", $strStatusCode = 0, $strResponseTime = 0, $Output = "" Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") Local $sQuery = "SELECT * FROM Win32_PingStatus WHERE " $sQuery &= "address = '" & $sAddress & "' " $sQuery &= "AND BufferSize = " & $iBufferSize & " " $sQuery &= "AND NoFragmentation = " & $bNoFragmentation & " " $sQuery &= "AND RecordRoute = " & $iRecordRoute & " " $sQuery &= "AND ResolveAddressNames = " & $bResolveAddressNames & " " $sQuery &= "AND SourceRoute = '" & $sSourceRoute & "'" $colItems = $objWMIService.ExecQuery($sQuery, "WQL", 0x10 + 0x20) If IsObj($colItems) Then ConsoleWrite("Object Name: " & ObjName($colItems) & @CRLF) For $objItem In $colItems $Output &= "Address: " & $objItem.Address & @CRLF $Output &= "BufferSize: " & $objItem.BufferSize & @CRLF $Output &= "NoFragmentation: " & $objItem.NoFragmentation & @CRLF $Output &= "PrimaryAddressResolutionStatus: " & $objItem.PrimaryAddressResolutionStatus & @CRLF $Output &= "ProtocolAddress: " & $objItem.ProtocolAddress & @CRLF $Output &= "ProtocolAddressResolved: " & $objItem.ProtocolAddressResolved & @CRLF $Output &= "RecordRoute: " & $objItem.RecordRoute & @CRLF $Output &= "ReplyInconsistency: " & $objItem.ReplyInconsistency & @CRLF $Output &= "ReplySize: " & $objItem.ReplySize & @CRLF $Output &= "ResolveAddressNames: " & $objItem.ResolveAddressNames & @CRLF $strResponseTime = $objItem.ResponseTime $Output &= "ResponseTime: " & $strResponseTime & @CRLF $Output &= "ResponseTimeToLive: " & $objItem.ResponseTimeToLive & @CRLF $strRouteRecord = $objItem.RouteRecord(0) $Output &= "RouteRecord: " & $strRouteRecord & @CRLF $strRouteRecordResolved = $objItem.RouteRecordResolved(0) $Output &= "RouteRecordResolved: " & $strRouteRecordResolved & @CRLF $Output &= "SourceRoute: " & $objItem.SourceRoute & @CRLF $Output &= "SourceRouteType: " & $objItem.SourceRouteType & @CRLF $strStatusCode = $objItem.StatusCode $Output &= "StatusCode: " & $strStatusCode & @CRLF $Output &= "Timeout: " & $objItem.Timeout & @CRLF $strTimeStampRecord = $objItem.TimeStampRecord(0) $Output &= "TimeStampRecord: " & $strTimeStampRecord & @CRLF $strTimeStampRecordAddress = $objItem.TimeStampRecordAddress(0) $Output &= "TimeStampRecordAddress: " & $strTimeStampRecordAddress & @CRLF $strTimeStampRecordAddressResolved = $objItem.TimeStampRecordAddressResolved(0) $Output &= "TimeStampRecordAddressResolved: " & $strTimeStampRecordAddressResolved & @CRLF $Output &= "TimestampRoute: " & $objItem.TimestampRoute & @CRLF $Output &= "TimeToLive: " & $objItem.TimeToLive & @CRLF $Output &= "TypeofService: " & $objItem.TypeofService & @CRLF Next ;Uncomment to see full results ;ConsoleWrite($Output & @CRLF) If $strStatusCode <> 0 Then Return SetError(1,0,$strStatusCode) Else Return $strResponseTime EndIf Else Return SetError(2,0,0) EndIf EndFunc ;==>WMI_Ping ;~ Défini l'adresse IP du réseau privé. Func MenuItemIP1Click() IniWrite("Conf.INI","CONF","IP","RP") MsgBox(0,"Information","Le programme va redémarrer pour pouvoir appliquer les modifications.",3) If @AutoItX64 = 1 Then ShellExecute("Diall V2.5 (x64).exe") Else ShellExecute("Diall V2.5.exe") EndIf Exit EndFunc ;~ Défini l'adresse IP du réseau. Func MenuItemIP2Click() MsgBox(0,"Information","Si vous ne parvenez pas à communiquer sur le Réseaux, vérifier que le port 49562 soit bien ouvert, Pointer sur cette adresse "&@IPAddress1) IniWrite("Conf.INI","CONF","IP","R") MsgBox(0,"Information","Le programme va redémarrer pour pouvoir appliquer les modifications.",3) If @AutoItX64 = 1 Then ShellExecute("Diall V2.5 (x64).exe") Else ShellExecute("Diall V2.5.exe") EndIf Exit EndFunc ; Function to return IP Address from a connected socket. Func SocketToIP($SHOCKET) Local $sockaddr, $aRet $sockaddr = DllStructCreate("short;ushort;uint;char[8]") $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _ "ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr)) If Not @error And $aRet[0] = 0 Then $aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3)) If Not @error Then $aRet = $aRet[0] Else $aRet = 0 EndIf $sockaddr = 0 Return $aRet EndFunc ;==>SocketToIP Func ListClick() $CurSel = _GUICtrlListBox_GetCurSel($List1) $DszIPADDRESS = _GUICtrlListBox_GetText($List1,$CurSel) $ConnectedSocket = TCPConnect($DszIPADDRESS, $nPORT) If @error Then TCPCloseSocket($ConnectedSocket) MsgBox(0,"Connexion","Aucun réponse.") ElseIf Not @error Then GUICtrlSetState($Group2,$GUI_DISABLE) GUICtrlSetState($IPAddress1,$GUI_DISABLE) GUICtrlSetState($Button1,$GUI_DISABLE) GUICtrlSetData($Label2,"Connexion : Connecter") GUICtrlSetData($Label3,"Connecté à: "&$DszIPADDRESS) GUICtrlSetState($Group4,$GUI_ENABLE) GUICtrlSetState($Edite1,$GUI_ENABLE) GUICtrlSetState($Inpute1,$GUI_ENABLE) GUICtrlSetState($Buttone1,$GUI_ENABLE) EndIf EndFunc ;~ Copyright © 2012. Tous droits réservés.