Jump to content

Newbie - Modifying host file


Recommended Posts

I'm new to Autoit and wanted to know how to search C:\Windows\System32\drivers\etc\host for an entry for "10.1.1.1 www.google.com" if it doesn't exist then modify the host file to enter in that entry automatically. But if the user clicks on the Internet button then it should comment out the entry to read "#10.1.1.1 www.google.com" and if the user clicks on the dedicated button then it should change it to "10.1.1.1 www.google.com" but if the user constantly click on the Internet button it should only input in one "#". When this script runs everytime I click on the Internet button it places and "#" at the beginning of the line so if I open the app 2 times the lines shows "##10.1.1.1 www.google.com" instead of "#10.1.1.1 www.google.com". I also need it to work for Windows 7 pc's. Thanks in advance for any assistance on this.

Code:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_outfile=C:\Temp\test.exe

#AutoIt3Wrapper_UseX64=n

#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#Begin

#include <ButtonConstants.au3>

#include <GUIConstantsEx.au3>

#include <StaticConstants.au3>

#include <WindowsConstants.au3>

#Region

#Region Variable Declarations, etc

Dim $line, $HostFileName, $FileContent

Global $EntryTag = "NotFound"

$HostFileName = "C:\Windows\System32\drivers\etc\host"

$FileContent = ""

#EndRegion Variable Declarations, etc

_Main()

Func _Main()

$Form1 = GUICreate("The ICE 1.0", 316, 238, 381, 189)

GUISetIcon("D:\003.ico")

$GroupBox1 = GUICtrlCreateGroup("", 8, 1, 297, 193)

$InternetButt = GUICtrlCreateButton("&Internet", 17, 50, 131, 89, $WS_GROUP)

GUICtrlSetFont(-1, 12, 800, 0, "Perpetua")

$DedicatedButt = GUICtrlCreateButton("&Dedicated", 161, 50, 131, 89, $WS_GROUP)

GUICtrlSetFont(-1, 12, 800, 0, "Perpetua")

GUICtrlCreateLabel("Web ICE Host Switcher", 35, 16, 244, 28)

GUICtrlSetFont(-1, 14, 800, 2, "Univers 55")

GUICtrlSetColor(-1, 0x008000)

GUICtrlCreateGroup("", -99, -99, 1, 1)

$CancelButt = GUICtrlCreateButton("&Cancel", 110, 203, 75, 25, $WS_GROUP)

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

While 1

$nMsg = GUIGetMsg()

Select

Case $nMsg = $CancelButt

Exit

Case $nMsg = $InternetButt

InternetConfig()

Case $nMsg = $DedicatedButt

ModDedicated()

Case $nMsg = $GUI_EVENT_CLOSE

Exit

EndSelect

WEnd

EndFunc ;==>_Main

Func ModDedicated()

$TheICEMod = "#10.1.1.1 www.google.com"

$ReplaceText = "10.1.1.1 www.google.com"

$FileContents = FileRead($HostFileName)

$FileContents = StringReplace($FileContents, $TheICEMod, $ReplaceText)

FileDelete($HostFileName)

FileWrite($HostFileName, $FileContents)

$JARMod = "#10.1.1.2 new.google.com"

$ReplaceText = "10.1.1.2 new.google.com"

$FileContents = FileRead($HostFileName)

$FileContents = StringReplace($FileContents, $JARMod, $ReplaceText)

FileDelete($HostFileName)

FileWrite($HostFileName, $FileContents)

$InternetButt = GUICtrlCreateButton("&Internet", 17, 50, 131, 89, $WS_GROUP)

GUICtrlSetFont(-1, 12, 800, 0, "Perpetua")

GUICtrlSetBkColor(-1, 0x00FF00)

$DedicatedButt = GUICtrlCreateButton("&Dedicated", 161, 50, 131, 89, $WS_GROUP)

GUICtrlSetFont(-1, 12, 800, 0, "Perpetua")

GUICtrlSetBkColor(-1, 0xFFFFFF)

Exit

EndFunc ;==>ModDedicated

Func InternetConfig()

$TheICE = "10.1.1.1 www.google.com"

$ReplaceText = "#10.1.1.1 www.google.com"

$FileContents = FileRead($HostFileName)

$FileContents = StringReplace($FileContents, $TheICE, $ReplaceText)

FileDelete($HostFileName)

FileWrite($HostFileName, $FileContents)

$JAR = "10.1.1.2 new.google.com"

$ReplaceText = "#10.1.1.2 new.google.com"

$FileContents = FileRead($HostFileName)

$FileContents = StringReplace($FileContents, $JAR, $ReplaceText)

FileDelete($HostFileName)

FileWrite($HostFileName, $FileContents)

$InternetButt = GUICtrlCreateButton("&Internet", 17, 50, 131, 89, $WS_GROUP)

GUICtrlSetFont(-1, 12, 800, 0, "Perpetua")

GUICtrlSetBkColor(-1, 0x00FF00)

$DedicatedButt = GUICtrlCreateButton("&Dedicated", 161, 50, 131, 89, $WS_GROUP)

GUICtrlSetFont(-1, 12, 800, 0, "Perpetua")

GUICtrlSetBkColor(-1, 0xFFFFFF)

Exit

EndFunc ;==>InternetConfig

#End

Link to comment
Share on other sites

Search the Example Forum for _HostFile, this should give you a good basis to work from. Also when you do post code could you possibly use the [autoit][/autoit] tags as it makes things a lot easier to read, thanks.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...