JustinReno Posted March 4, 2008 Posted March 4, 2008 After searching the example scripts, I see that no one has tried to make a parental filter! So, after an hour or two, I came up with my own. Its really simple, and it needs improvement, like scanning the webpage for bad words. In the Var $Filter, fill out what you want to filter. REMEMBER: It searches through this array at 0. Example: $Filter[1] = ["Crap"] NOT $Filter[2] = ["Crap"] expandcollapse popup#NoTrayIcon #Include <IE.au3> Opt("GUIResizeMode", 1) Global $Filter[2] = ["Blah", "Crap"] Global $RedirectURL = "http://www.parentalfilter.tk/" Global $Log = @WindowsDir & "\Log.txt" Global $Found $Password = InputBox("Parental Browser", "Please enter a password to use when exiting:", "", "*M") If @error Then Exit _FileWriteLog($Log, "Password " & $Password) $GUI = GUICreate("Parental Browser", 627, 414, -1, -1, -1, 0x00000080) $IE = ObjCreate("Shell.Explorer.2") GUICtrlCreateObj($IE, 0, 0, 626, 388) GUICtrlCreateLabel("URL:", 0, 392, 34, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $URL = GUICtrlCreateInput("", 40, 392, 121, 21) $Go = GUICtrlCreateButton("Go", 168, 392, 75, 21, 0) $Back = GUICtrlCreateButton("Back", 243, 392, 75, 21, 0) GUISetState(@SW_SHOW, $GUI) GUISetState(@SW_MAXIMIZE, $GUI) While 1 _IELoadWaitTimeout(100) If Not WinActive($GUI) Then WinActivate($GUI) If WinGetState($GUI) <> 32 Then GUISetState(@SW_MAXIMIZE, $GUI) If ProcessExists("TaskMgr.exe") Then ProcessClose("TaskMgr.exe") If $IE.LocationURL () <> "" And $IE.LocationURL () <> $RedirectURL And Not StringInStr(FileRead($Log), $IE.LocationURL ()) Then _FileWriteLog($Log, $IE.LocationURL ()) _FilterURL() Switch GUIGetMsg() Case - 3 $AskForPassword = InputBox("Parental Browser", "Please enter the password to exit:", "", "*M") If $AskForPassword = $Password Then _FileWriteLog($Log, "Closed") Exit EndIf If $AskForPassword <> $Password And Not @error Then _FileWriteLog($Log, "Bad Exit Password: " & $AskForPassword) Case $Go If _FilterURLBox() = 0 Then $IE.Navigate (GUICtrlRead($URL)) Case $Back If FileRead($Log) <> "" Then $IE.GoBack () EndSwitch WEnd Func _FilterURLBox() $Found = 0 For $I = 0 To UBound($Filter) - 1 If StringInStr(GUICtrlRead($URL), $Filter[$I]) Then _FileWriteLog($Log, "Bad URL: " & GUICtrlRead($URL) & " | " & $Filter[$I]) $IE.Navigate ($RedirectURL) $Found = 1 ExitLoop EndIf Next Return $Found EndFunc ;==>_FilterURLBox Func _FilterURL() For $I = 0 To UBound($Filter) - 1 If StringInStr($IE.LocationURL (), $Filter[$I]) And Not StringInStr(FileRead($Log), $IE.LocationURL ()) Then _FileWriteLog($Log, "Bad URL: " & $IE.LocationURL () & " | " & $Filter[$I]) $IE.Navigate ($RedirectURL) EndIf Next EndFunc ;==>_FilterURL Func _FileWriteLog($H_Log, $S_Msg) FileWrite($H_Log, @CRLF & @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " : " & $S_Msg) EndFunc If you use any of my code give credit.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now