Voila, je veux automatiser une connexion automatique en basculant entre le travail et la maison !
Pour le travail on utilise un Proxy : Donc je dois normalement choisir l'adresse ip manuellement et entrer les paramètres du proxy, ce qui est très fatiguant pour moi de répéter ces actions chaque fois
Pour la maison une connexion normale avec DHCP en WIFI
Alors, J'ai utilisé un Vbscript trouvé dans le Net, que je l'ai modifié un peu pour mon cas, et il marche bien, or je veux l'intégrer càd le réécrire en autoit avec ce que je viens de faire en autoit dans son menu càd ajouter un item pour Connexion travail et un item pour la connexion Maison
► Afficher le texteCode Vbscript
Code : Tout sélectionner
' Initialize Objects
Dim LocalClass_StdRegProv: Set LocalClass_StdRegProv = GetObject("winmgmts:{impersonationlevel=impersonate}!//./root/default:StdRegProv")
Dim EmptyRecordset: Set EmptyRecordset = CreateObject("ADODB.Recordset")
' Define Constants
Const HKEY_CLASSES_ROOT = &H80000000, HKCR = &H80000000
Const HKEY_CURRENT_USER = &H80000001, HKCU = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002, HKLM = &H80000002
Const HKEY_USERS = &H80000003, HKU = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004, HKPD = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005, HKCC = &H80000005
Const HKEY_DYN_DATA = &H80000006, HKDD = &H80000006
Const MaxCharacters = 255
Const adVarChar = 200
Const adInteger = 3
' Dimension Public Variables
Dim EntryNumber: EntryNumber = 0
Dim Return
EmptyRecordset.Fields.Append "Entry", adInteger
EmptyRecordset.Fields.Append "Name", adVarChar, MaxCharacters
EmptyRecordset.Fields.Append "Server", adVarChar, MaxCharacters
EmptyRecordset.Fields.Append "Port", adInteger
EmptyRecordset.Open
' Add server/port
EntryNumber = EntryNumber + 1
EmptyRecordset.AddNew
EmptyRecordset("Entry") = EntryNumber
EmptyRecordset("Name") = "Connexion au travail avec proxy"
EmptyRecordset("Server") = "172.16.0.1"
EmptyRecordset("Port") = "3128"
EmptyRecordset.Update
EntryNumber = EntryNumber + 1
EmptyRecordset.AddNew
EmptyRecordset("Entry") = EntryNumber
EmptyRecordset("Name") = "Connexion à la maison avec WIFI DHCP Activé"
EmptyRecordset("Server") = ""
EmptyRecordset("Port") = "80"
EmptyRecordset.Update
Dim Message
EmptyRecordset.MoveFirst
Do While EmptyRecordset.EOF = False
Message = Message & EmptyRecordset("Entry").Value & "-" & vbTab & EmptyRecordset("Name").Value & vbCrLf
EmptyRecordset.MoveNext
Loop
Do
Dim intAnswer: intAnswer = InputBox(Message, "Entrer 1 ou 2 puis valider par OK © Hackoo Crackoo","1")
If IsNumeric(intAnswer) = True Then intAnswer = CLng(intAnswer)
If intAnswer > EmptyRecordset.RecordCount Or intAnswer < 0 Then MsgBox "Invalide entrée, veuillez réessayer ...",16,"Invalide entrée, veuillez réessayer ..."
Loop Until (((VarType(intAnswer) And vbLong) = vbLong) And intAnswer <= EmptyRecordset.RecordCount And intAnswer >= 0)
Select Case True
Case (((VarType(intAnswer) And vbLong) = vbLong) And intAnswer = EmptyRecordset.RecordCount And intAnswer > 0)
DesactiverProxy()
ActiverDHCP()
Case (intAnswer = 0)
MsgBox "Annulé. Quitter.",48,"Annulé. Quitter."
Case (((VarType(intAnswer) And vbLong) = vbLong) And intAnswer <= EmptyRecordset.RecordCount And intAnswer > 0)
EmptyRecordset.Filter = "Entry=" & intAnswer
Dim ProxyServer: ProxyServer = EmptyRecordset("Server").Value & ":" & EmptyRecordset("Port").Value
intAnswer = MsgBox("Voulez-vous définir le proxy pour " & EmptyRecordset("Name").Value & " (" & ProxyServer & ") ?", vbQuestion + vbYesNo, "Confirmez-vous ?")
If intAnswer = vbYes Then
Return = LocalClass_StdRegProv.SetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyEnable",1)
Return = LocalClass_StdRegProv.SetStringValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyServer",ProxyServer)
Call ChangeIP_Static()
If Err.Number = 0 And Return = 0 Then
MsgBox "Les paramètres de proxy sont modifiés. Quitter.",64,"Les paramètres de proxy sont modifiés. Quitter."
Else
MsgBox "Les paramètres de proxy ne changent pas. Quitter.",48,"Les paramètres proxy ne changent pas. Quitter."
End If
Else
MsgBox "Aucune modification apportée. Quitter.",48,"Aucune modification apportée. Quitter."
End If
Case Else
WScript.Echo "Entrée Invalide. Quitter",16,"Entrée Invalide. Quitter"
End Select
Sub ChangeIP_Static()
strIP = Array("172.16.0.100")
strmask = Array("255.255.255.0")
strGateway = Array("172.16.0.1")
strGatewayMetric = Array(1)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIP, strmask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
MsgBox "L'adresse IP a été changé.",64,"L'adresse IP a été changé."
Else
MsgBox "L'adresse IP ne peut pas être changé.",16,"L'adresse IP ne peut pas être changé."
End If
Next
End Sub
Sub DesactiverProxy()
Set ws = createObject("wscript.Shell")
ws.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable",0,"REG_DWORD"
End Sub
Sub ActiverDHCP()
Titre = "Connexion à la maison avec WIFI DHCP Activé"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableDHCP()
errGateways = objNetAdapter.SetGateways()
If errEnable = 0 Then
MsgBox "L'adresse IP a été bien changé et le DHCP est désormais Activé !" & vbCrLf & Titre,64,Titre
Else
MsgBox "L'adresse IP n'a pas été changé !" ,16, "Changer IP"
End If
Next
End Sub
► Afficher le texteCode Autoit
Code : Tout sélectionner
#include <Inet.au3>
#include <String.au3>
#include <Array.au3>
#include <Sound.au3>
;#NoTrayIcon
Opt("TrayMenuMode",3)
TraySetIcon("shell32.dll","-19")
Local $connected=0
Local $Copyright = " © Hackoo © 2014"
HotKeySet("!q","Fin")
$sIP = TrayCreateItem("Afficher l'adresse Ip Publique")
$aboutitem = TrayCreateItem("A propos")
$exititem = TrayCreateItem("Quitter l'application")
TraySetState() ; Pour montrer l'icone dans le tray
Global $sPublicIP = _GetIP()
TestdeConnexion()
Func MenuTray()
While 1
$msg = TrayGetMsg()
Select
Case $msg = $sIP
TrayTip("Ip Publique "& $Copyright,"Votre ip publique est : " & $sPublicIP,100,1)
Case $msg = $aboutitem
Msgbox(64,"A propos de Test de Connexion Internet" & $Copyright,"Test de Connexion Internet + Affichage de l'adresse ip publique" & @CRLF & $Copyright)
Case $msg = $exititem
Exit
EndSelect
WEnd
EndFunc
Func TestdeConnexion()
while 1
$ret = DllCall("WinInet.dll","int","InternetGetConnectedState","int_ptr",0,"int",0)
If $ret[0] then
if $connected=0 Then
_parle("Etat de connexion internet : ",1)
$connected=1
;TrayTip("Ip Publique"& $Copyright,"Votre ip publique est : " & $sPublicIP,100,1)
Sleep(1000)
EndIf
MenuTray()
Else
if $connected=0 Then
_parle("Etat de connexion internet : ",0)
$connected=0
EndIf
Endif
sleep(10000)
wend
EndFunc
Func _parle($String,$Flag)
If $Flag = 1 Then
InetGet("http://translate.google.com/translate_tts?ie=UTF-8&tl=fr&q=" & $String & " et connectez",@TempDir & "\temp.mp3",1)
TrayTip("Test de Connexion Internet"& $Copyright,$STRING & " connecté" & @CRLF & "Votre ip publique est : " & $sPublicIP,10,1)
sleep(2000)
Else
;InetGet("http://translate.google.com/translate_tts?ie=UTF-8&tl=fr&q=" & $String & " et deconnectez",@TempDir & "\temp.mp3",1)
TrayTip("Test de Connexion Internet "& $Copyright, $STRING & "Pas de connexion internet disponible" ,10,3)
sleep(20000)
EndIf
$sound = _SoundOpen(@TempDir & "\temp.mp3")
if FileExists(@TempDir & "\temp.mp3") Then
_SoundPlay($sound,1)
_SoundClose($sound)
FileDelete(@TempDir & "\temp.mp3")
EndIf
EndFunc
Func fin()
Exit
EndFunc