UltraVNC.fr
UltraVNC & logiciels liés => SC => Discussion démarrée par: gizmo622 le 01 mai 2007, 16:22:47
-
Bonjour à tous,
Utilisant très souvent depuis quelques mois SC j'étais assez déçu qu'il ne propose pas de reconnection automatique en cas d'erreur réseau...
Hors je me suis penché sur le projet, et j'ai créér deux petits modules qui permettent à SC de se relancer tout seul à distance, j'ai testé cela fonctionne très bien.
Jusque quelques bogues à corriger.
Si cela vous interesse je partagerai mes sources.
Je tiens à remercier JL56 qui m'as fait connaître via son tutorial AutoIt car sans ce merveilleux petit logiciel de script je ne me serai jamais lancer dans l'aventure.
Et un deuxième merci pour les paramètres à utiliser quand on passe par un serveur proxy, moi qui pensait que l'on pouvait pas outrepasser les paramètres proxy avec SC.
Bon 1er mai à tous et oui il y en a qui bosse quand même
-
bonjour gizmo622
il y a pas de quoi
REGDE WENS Sparad0x m'ont beaucoup aider au début
j'aide maintenant les autres surtout dans la partie SCIII et proxy que je maitrise
et je pense que c'est le principe d'un forum intelligent et de bonne esprit
comme l'est ce forum
pour le code surtout si il est en autoit je suis preneur merci de ta proposition
a+ jl56
-
Bonjour gizmo622,
Comme tu l'as sans doute remarqué, ce forum est très axé sur l'entraide!
Aussi, si tu désires partager tes exécutables, tes sources, et expliquer s'en servir au travers d'un petit tuto clair et concis, ce sera avec plaisir.
Je peux même héberger des fichiers sur le serveur du site si tu en as besoin.
Have Fun ;)
Sparad0x
-
ah autoit ::) j'en ai fait des installation grace a lui, moi aussi je maitrise bien autoit, donc si tu ve filer tes sources , je suis preneur :P
-
J'attend tjs ces fameux script, sa serait cool que tu les affiches pour que chacun les utilisent et pourquoi pas les améliorer.
Je pense que tout le monde serait content d'en profiter, surtout que moi c'est souvent que ca m'arrive ces deconnection :-[
Merci
@+ Benjy
-
Bonsoir, excuser moi si j'ai mis du temp à faire réapparition mais j'étais beaucoup pris et voulai corriger les bogues avant de mettre tout en ligne :
Donc voila les sources je les postes directement sur le forum car j'ai pas de serveur FTP sous la main pour les envoyer :
Les modules sont compilés avec AutoIt3
Les xx dans le code correpondent soit à des adresses de sites internet ou des prénom de technicien
-------------Le module client à lancer depuis le poste qui veut controler le serveur -------------
#include <GUIConstants.au3>
#include <IE.au3>
Opt("TCPTimeout",1000) ;1000 milliseconds
global $nomserveur="xx.dyndns.org"
global $port_serveur_internet = 8080
global $socket
Global $res
$file = -1
if $CmdLine[0]=0 Then
msgbox(64,"Info...","La ligne de commande est incorrecte"&@LF&"Usage : user")
exit
else
$user=$CmdLine[1] ; récupére le nom d'utilisateur via la ligne de commande (en premier paramètre)
EndIf
if $cmdline[0]=2 Then
if($cmdline[2])=1 then $file=FileOpen("debug.log",2)
endif
$ouinon = MsgBox(292,"Confirmer ?","Le client est il un xx ?")
if $ouinon=6 then
Switch $user
case "xx"
$ch = 9001
case "xx"
$ch = 9002
case "xx"
$ch = 9003
case "xx"
$ch = 9004
case "xx"
$ch = 9005
case "xx"
$ch = 9006
case "xx"
$ch = 9007
EndSwitch
RunWait("helpdeskclientssl.exe -proxy xx.dyndns.org:443 ID:"&$ch,"")
MsgBox(64,"Info...","La session d'assistance est terminé...")
Exit
EndIf
; Le client n'est pas un xx
Do
$id=Random(1,9000,1)
$res=TCPStartup()
If($res)<>1 then
msgbox(16,"Erreur","Erreur d'initialisation de la librairie Socket")
Exit
EndIf
$serveur_internet=TCPNameToIP($nomserveur)
If $serveur_internet="" Then
MsgBox(16,"Erreur","Erreur pendant la résolution DNS de " &$nomserveur)
exit
EndIf
$socket = TCPConnect($serveur_internet, $port_serveur_internet)
If $socket = -1 Then
MsgBox(16,"Erreur","Erreur de connection au serveur d'assistance")
Exit
EndIf
$szData= 'user='&$user&'&etat=connect&id='&$id
$longueur=StringLen($szData)
$envoi="POST /connect.php HTTP/1.0" & @LF & "Connection: Close" & @LF & "Content-type: application/x-www-form-urlencoded" & @LF & "Content-Length: " & $longueur & @LF & @LF & $szdata & @LF
$new = StringAddCR($envoi)
$res=TCPSend($socket,$new)
If($res=0) then
msgbox(16,"Erreur","Erreur d'envoi des données d'etat au serveur d'assistance")
Exit
EndIf
; lecture de la réponse
$buff=""
$buff = TCPRecv($socket, 500) ; ne pas mettre un tampon trop fort car pas de reception parfois
If($buff="") Then
MsgBox(16,"Erreur","Erreur de réception des données d'etat du serveur d'assistance")
Exit
EndIf
TCPCloseSocket($socket)
if Stringright($buff,2)="ok" Then
RunWait("helpdeskclientssl.exe -proxy xx.dyndns.org:443 ID:"&$id,"")
EndIf
$ouinon = MsgBox(292,"Confirmer ?","Cette session d'assistance est elle terminer ?")
if $ouinon=6 then ; terminer la session
$reponse=ReinitialiseConnect($user)
if $reponse<>"" then
MsgBox(16,"Erreur","Erreur pendant la réinitialisation du serveur d'assistance")
exit
Else
MsgBox(64,"Info...","La session d'assistance est terminé...")
exit
Endif
Endif
until $ouinon=6
;GUISetState(@SW_HIDE) ; cache l'interface utilisateur
func ReinitialiseConnect($user)
if $file<>-1 then FileWriteLine($file,@LF&"--- Début de la réinitialisation du serveur d'assistance ---"&@LF)
if $file<>-1 then FileWriteLine($file,"Lance la connection au serveur d'assistance vers : IP "&$serveur_internet & " PORT "&$port_serveur_internet)
$socket=-1 ; réinitialise l'etat de la variable Global $socket
if $file<>-1 then FileWriteLine($file,"Ouvre un socket")
$socket = TCPConnect($serveur_internet , $port_serveur_internet)
If $socket = -1 Then
if $file<>-1 then FileWriteLine($file,"Erreur de connection au serveur d'assistance Adresse IP : " &$serveur_internet & " sur le port : " &$port_serveur_internet)
return "Erreur de connection au serveur d'assistance"
exit
EndIf
if $file<>-1 then FileWriteLine($file,"Connection au serveur d'assistance réussi")
$szData= 'user='&$user&'&etat=pasdeconn' ; disconnnect
$longueur=StringLen($szData)
$envoi="POST /connect.php HTTP/1.0" & @LF & "Connection: Close" & @LF & "Content-type: application/x-www-form-urlencoded" & @LF & "Content-Length: " & $longueur & @LF & @LF & $szdata & @LF
$new = StringAddCR($envoi)
if $file<>-1 then FileWriteLine($file,"Lance la requête d'envoi de données au serveur d'assistance"&@LF&@LF&$new)
$res=TCPSend($socket,$new)
if($res=0) then
if $file<>-1 then fileWriteLine($file,"Erreur d'envoi de la requête de données au serveur d'assistance")
Return "Erreur d'envoi des données au serveur d'assistance"
EndIf
if $file<>-1 then FileWriteLine($file,"Requête d'envoi de données du serveur d'assistance réussi")
; lecture de la réponse
if $file<>-1 then fileWriteLine($file,"Lance la requête de réception des données du serveur d'assistance")
$buff=""
$buff = TCPRecv($socket, 500) ; ne pas mettre un tampon trop fort car pas de reception parfois
if($buff="") Then
Return "Erreur de réception des données de réinitialisation du serveur d'assistance"
if $file<>-1 then FileWriteLine($file,"Erreur de réception des données du serveur d'assistance")
endif
if $file<>-1 then FileWriteLine($file,"Requête de réception des données du serveur d'assistance réussi")
if Stringright($buff,2)="ok" Then
if $file<>-1 then FileWriteLine($file,"Réception des données du serveur d'assistance réussi")
return ""
Else
if $file<>-1 then FileWriteLine($file,"Erreur de réception des données du serveur d'assistance : "&@LF&@LF&$buff)
return "Erreur en reception des données : " &$buff
endif
endfunc
Func OnAutoItExit() ; automatiquement appeler en quand d'erreur
if $socket>1 Then ; ferme le socket uniquement si ce dernier à été ouvert
TCPCloseSocket($socket)
if $file<>-1 then FileWriteLine($file,"Ferme un socket")
TCPShutdown()
if $file<>-1 then FileWriteLine($file,"Libère la bibliothèque d'initialisation socket")
if $file<>-1 then FileWriteLine($file,"Fin de la session")
EndIf
if $file<>-1 then FileClose($file)
EndFunc
Le reste dans l'autre post
-
-------------Le module serveur doit être lancer après que le client soit lancer (en attente)----------
Opt("TrayIconHide",1) ; cache l'icone de send.exe
FileChangeDir(@ProgramFilesDir&"\xxx\Helpdesk")
$FileDebug = FileOpen("debug.log",1)
if($filedebug=-1) then MsgBox(16,"Attention !","Erreur de création du fichier debug...")
#include <GUIConstants.au3>
#include <IE.au3>
Opt("TCPTimeout",30000) ;30 secondes
Global $glob,$compteur=0,$ancienid,$file_proxy,$file,$handle,$socket,$FileDebug,$Temp_Debut,$Temp_Fin
; AVEC PROXY
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lit la valeur Proxy de la BDR")
$proxyenable = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable")
if $proxyenable="1" Then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Le proxy est activé sur le poste")
$username=""
$password=""
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Vérifie si le fichier proxy existe déjà")
if FileExists("proxy")=1 Then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ouvre le fichier Proxy en lecture")
$file_proxy=FileOpen("proxy",0)
if $file_proxy=-1 Then
MsgBox(16,"Erreur","Impossible d'ouvrir le fichier de configuration")
exit
Endif
$ligne=FileReadLine($file_proxy,1)
if $ligne=1 Then
MsgBox(16,"Erreur","Erreur de lecture du fichier de configuration")
exit
Endif
$pos=StringInStr($ligne,";")
$taillechaine=StringLen($ligne)
$username=StringLeft($ligne,$pos-1)
$password=Stringmid($ligne,$pos+1,$taillechaine-$pos+1)
if $username="" or $password="" then
MsgBox(16,"Erreur","Erreur de lecture de la configuration proxy")
exit
Endif
else
$username = InputBox("Paramètres proxy ? ", "Vous utiliser un proxy, entrez votre nom d'utilisateur S.V.P.", "", "",100,150)
$password = InputBox("Paramètres proxy ? ", "Vous utiliser un proxy, entrez votre mot de passe S.V.P. ", "", "",100,150)
if $username="" or $password="" then
MsgBox(4096, "Erreur ", " Erreur de saisie recommencer ! ")
Exit
Endif
$file_proxy=FileOpen("proxy",2)
if $file_proxy=-1 Then
MsgBox(16,"Erreur","Erreur de création du fichier de configuration")
Exit
Endif
$res=FileWriteLine($file_proxy,$username&";"&$password)
if($res=0) Then
MsgBox(16,"Erreur","Erreur pendant l'écriture du fichier de configuration")
Exit
EndIf
FileClose($file_proxy)
Endif
envset("http_proxy_user", $username)
envSet("http_proxy_password",$password)
; Interface IHM
$handle=GuiCreate("Helpdesk", 430, 280,-1,-1,$DS_MODALFRAME+$DS_SETFOREGROUND+$WS_POPUPWINDOW+$WS_CAPTION, $WS_EX_TOOLWINDOW)
$liste=GUICtrlCreateList("", 10,10,200,196, $LBS_NOTIFY, $WS_EX_CLIENTEDGE)
GuiCtrlSetData(-1, "xx|xx|xx|xx|xx|xx|xx", "xx")
GuiCtrlCreatePic("logo.bmp",220,15, 200,181)
GUICtrlCreateLabel("Avant d'établir une connection, veuillez nous contacter au xx.xx.xx.xx.xx",40,225)
GUICtrlCreateLabel("http://www.xxx.fr",220,200)
$debug=GUICtrlCreateLabel("Etat : en attente...",10,260,500)
$bouton1=GUICtrlCreateButton("Quitter",350,250,70,25) ; quitter le logiciel
$bouton2=GUICtrlCreateButton("Notre site Internet",240,250,100,25) ; site internet
$bouton3=GUICtrlCreateButton("Lancer",80,200,50,20) ; Lancer l'assistance
Sleep(1000) ; laisse le temp au controle de bien s'initialiser
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
case $msg = $bouton1
exit
case $msg = $bouton2
$oIE = _IECreate ("www.xxx.fr")
_IENavigate($oIE,"http://www.xxx.fr")
case $msg = $bouton3
$prenom=GUICtrlRead($liste)
ExitLoop
case $msg = $GUI_EVENT_CLOSE
OnAutoItExit()
Exit
EndSelect
Wend
Switch $prenom
case "xx"
$ch = 9001
case "xx"
$ch = 9002
case "xx"
$ch = 9003
case "xx"
$ch = 9004
case "xx"
$ch = 9005
case "xx"
$ch = 9006
case "xx"
$ch = 9007
EndSwitch
$retour=CreeFile($ch,$prenom)
If $retour<>"" then
MsgBox(16,"Erreur",$retour)
exit
Endif
GUISetState(@SW_HIDE) ; cache l'interface utilisateur
RunWait("Helpdeskserver.exe","",@SW_HIDE)
MsgBox(64,"Information","La Session d'assistance est terminé...",5)
Exit
EndIf
func CreeFile($ch,$prenom)
;creation du fichier de connection
$file=fileopen("helpdesk.txt",2)
if $file=-1 then return "Erreur pendant la création du fichier de connection..."
FileWriteLine($file,"[DIRECT]")
FileWriteLine($file,"[HOST]")
FileWriteLine($file,$prenom)
FileWriteLine($file,"-id "&$ch&" -sslproxy -connect xx.dyndns.org:443 -noregistry")
FileClose($file)
return ""
EndFunc
; SANS PROXY
$temp_debut=TimerInit()
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Chemin d'execution : " &@WorkingDir)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lit la clé run de la BDR")
if RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","Helpdesk")="" then
; Interface IHM
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" La clé dans la BDR n'existe pas, création de GUI")
$handle=GuiCreate("Helpdesk", 430, 280,-1,-1, $WS_CAPTION, $WS_EX_TOOLWINDOW)
$liste=GUICtrlCreateList("", 10,10,200,196, $LBS_NOTIFY, $WS_EX_CLIENTEDGE)
GuiCtrlSetData(-1, "xx|xx|xx|xx|xx|xx|xx", "xx")
GuiCtrlCreatePic("logo.bmp",220,15, 200,181)
GUICtrlCreateLabel("Avant d'établir une connection, veuillez nous contacter au xx.xx.xx.xx.xx",40,225)
GUICtrlCreateLabel("http://www.xxx.fr",220,200)
$debug=GUICtrlCreateLabel("Etat : en attente...",10,260,500)
$bouton2=GUICtrlCreateButton("Notre site Internet",240,250,100,25) ; site internet
$bouton1=GUICtrlCreateButton("Quitter",350,250,70,25) ; quitter le logiciel
$bouton3=GUICtrlCreateButton("Lancer",80,200,50,20) ; Lancer l'assistance
Sleep(1000)
GUISetState(@SW_SHOW)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Création interface GUI créé")
While 1
$msg = GUIGetMsg()
Select
case $msg = $bouton1
exit
case $msg = $bouton2
$oIE = _IECreate ("www.xxx.fr")
_IENavigate($oIE,"http://www.xxx.fr")
case $msg = $bouton3
$prenom=GUICtrlRead($liste)
exitloop
case $msg = $GUI_EVENT_CLOSE
OnAutoItExit()
Exit
EndSelect
Wend
GUISetState(@SW_HIDE) ; cache l'interface utilisateur
Else
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" La clé dans la BDR est présente")
if $CmdLine[0]<>0 Then
$prenom=$CmdLine[1]
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ligne de commande : Prenom = " & $prenom)
Else
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ligne de commande incorrecte, redémarrer l'ordinateur")
MsgBox(16,"Erreur","Ligne de commande incorrect !"&@LF&"Redémarrer votre ordinateur...")
Exit
EndIf
EndIf
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Entre dans la boucle")
do
reconnect($compteur)
$compteur=$compteur+1
Until reconnect($compteur)<>"lance" ; si la fonction renvoi une valeur différente de "lance" alors fin de la session d'assistance
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Supprime la clé Run de la BDR")
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","Helpdesk")
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Session d'assistance terminée")
MsgBox(64,"Info...","La Session d'assistance est terminé...",5)
Func reconnect($compteur)
$temp_fin = TimerDiff($temp_debut)
if($temp_fin/1000)/60>300 Then ;5 heures
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Fin de session d'assistance du au temps 5 Heures")
return "connectepas"
EndIf
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Temp : " & $temp_fin)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Charge la Dll Winsock")
$res=TCPStartup()
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lance la résolution DNS")
$serveur_internet=TCPNameToIP("xxx.dyndns.org")
if $serveur_internet="" then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Résolution DNS échoué, Attend 1 Minute")
Sleep(30000) ; Attend 30 secondes
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Relance la boucle")
Return("lance")
Endif
$port_serveur_internet = 8080
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Connection d'un socket")
$socket = TCPConnect($serveur_internet , $port_serveur_internet)
$szData= 'user='&$prenom
$longueur=StringLen($szData)
$envoi="POST /send.php HTTP/1.0" & @LF & "Connection: Close" & @LF & "Content-type: application/x-www-form-urlencoded" & @LF & "Content-Length: " & $longueur & @LF & @LF & $szdata & @LF
$new = StringAddCR($envoi)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lance la requête au serveur")
$res=TCPSend($socket,$new)
; lecture de la réponse
$buff=""
$buff = TCPRecv($socket, 500) ; ne pas mettre un tampon trop fort car pas de reception parfois
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lit la réponse de la requête"&@LF&@LF&$buff&@LF&@LF)
$glob=$buff
$pos=StringInStr($glob,"/",0,6)
$pos=$pos+1
$len=StringLen($glob);
$ch=StringMid($glob,$pos,$len) ; récupère le id de connection
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" ID de connection : " &$ch)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ferme le socket ouvert")
TCPCloseSocket($socket)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Libère la Dll socket")
TCPShutdown()
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Valeur de connection : " &StringMid($glob,$pos-8,7))
if(StringMid($glob,$pos-8,7))="connect" Then
;creation du fichier de connection
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Crée le fichier de connection")
$file=fileopen("helpdesk.txt",2)
FileWriteLine($file,"[DIRECT]")
FileWriteLine($file,"[HOST]")
FileWriteLine($file,$prenom)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ecriture fichier d'assistance : " & "-id "&$ch&" -sslproxy -connect xx.dyndns.org:443 -noregistry")
FileWriteLine($file,"-id "&$ch&" -sslproxy -connect xx.dyndns.org:443 -noregistry")
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ferme le fichier d'assistance")
FileClose($file)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ecrit la clé Run dans la BDR")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Helpdesk", "REG_SZ", "" & @WorkingDir & "" & "\send.exe" & " " & $prenom)
if $compteur=0 then
$ancienid=$ch
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lance le Helpdesk avec ID : "&$ch & " Compteur = 0")
RunWait("Helpdeskserver.exe","",@SW_HIDE)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Relance la boucle, renvoi lance")
return "lance"
else ; $compteur>0
if $ancienid<>$ch then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Lance le Helpdesk avec ID : "&$ch & " Compteur = "&$compteur)
$ancienid=$ch ; remet à jour la variable ancienid avec le ch en cours
RunWait("Helpdeskserver.exe","",@SW_HIDE)
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Relance la boucle, renvoi lance")
return "lance"
endif
endif
else
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Renvoi connecte pas")
return "connectepas"
endif
EndFunc
Func OnAutoItExit() ; automatiquement appeler en quand d'erreur
if $file_proxy<>-1 then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ferme le fichier Proxy")
FileClose($file_proxy)
Endif
if $handle<>0 then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Détruit l'interface GUI")
GUIDelete($handle)
EndIf
if $file<>-1 then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ferme le fichier de Connection")
FileClose($file)
EndIf
if $socket<>-1 then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ferme le Socket")
TCPCloseSocket($socket)
Endif
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Libère la dll Winsock")
TCPShutdown()
If $FileDebug<>-1 Then
FileWriteLine($FileDebug,@hour&"-"&@min&"-"&@SEC&" Ferme le fichier de Debug")
FileClose($FileDebug)
Endif
EndFunc
---------------Fichier Send.php-------------
<?php
$id=mysql_connect("127.0.0.1","root","");
$link=mysql_select_db("bhelpdesk",$id);
$user=$_POST['user'];
$req="SELECT * FROM cliserv WHERE user='$user'";
$result=mysql_query($req) or die(mysql_error());
$array=mysql_fetch_array($result);
$etat=$array['etat'];
$id=$array['id'];
mysql_close();
echo "$etat/$id";
?>
------------Fichier connect.php---------------
<?php
$id=mysql_connect("127.0.0.1","root","");
$link=mysql_select_db("bhelpdesk",$id);
$user=$_POST['user'];
$etat=$_POST['etat'];
$id=$_POST['id'];
$req="UPDATE cliserv SET etat='$etat',id='$id' WHERE user='$user'";
mysql_query($req) or die(mysql_error());
mysql_close();
echo "ok";
?>
----------------------------------------
Je n'ai pas le temp matériel de réaliser en détail un tutorial de fonctionnement
mais j'ai testé et cela fonctionne très bien.
Pour les fichiers send.php et connect.php, il faut les placer sur un serveur web qui sait gérer le php4.
Bonne soirée à tous
je suis à votre écoute si vous avez des questions à me poser.
-
bonjour gizmo622
et merci pour ton script
cela me semble tres complet
je ne comprend pas tout mais j'analyserais cela un peut plus tard
merci
a+ jl56
-
moi pareil j'analyserai ca plus tard, en tout cas merci pour le script et félicitation pour ton travail , bravo ;)
-
Bonjour gizmo622,
Merci beaucoup pour la mise à disposition de ton script !! :D
Bonne soirée,
++
Wens
-
bon encore bravo pour ton script, j'avoue deja m'avoir penché sur les sockets mais je trouvé ca trop compliqué (je m'amuser a faire des chats grace au socket avant :) pas plus ).
Au sujet du script : - ou est WinVNC.exe ? d'apres ce que j'ai compri, il y en a pas on est d'accord? tu utilise les socket pour te connecter à l'adresse voulu sur le port voulu et tu créer une interface graphique qui ressemble a celle du sc c'est bien ca?
si c'est ca comment et par quel fonction (que je ne connait pas) arrive tu a avoir une vision de l'ordinateur distant?
merci pr tes réponses qui m'éclaireront
@+ benjy
-
Bonjour,
Dans le module client il y a une ligne
" if Stringright($buff,2)="ok" Then
RunWait("helpdeskclientssl.exe -proxy xx.dyndns.org:443 ID:"&$id,"")
EndIf
"
Qui lance la partie client RunWait("helpdeskclientssl.exe") c'est ici que je lance winvnc client
Dans le module serveur c'est le même principe
-
ok ok merci pr tes precisions, je ne tarderai pas à le tester ;D