Geeky Posted August 24, 2006 Posted August 24, 2006 Hi, there. I'm working an a small script to clean a half-life 2 mod folder, for "viruses". Unfortunately it doesn't work as i want it to Whenever i run it, it just says that it found and deleted all the viruses, even though the viruses doesn't exist, in the folder. Its a long one, but most of it is just copied and pasted The code: expandcollapse popup#include <GUIConstants.au3> GUICreate( "Gmod Virus-Killah", 400, 300) $path = GUICtrlCreateInput( "Path...", 30, 20, 250, 21) $browse = GUICtrlCreateButton( "Browse...", 300, 20, 70, 21) $results = GUICtrlCreateEdit( "", 30, 60, 340, 200, $ES_READONLY) $Search = GUICtrlCreateButton( "Search & Destroy", 130, 270, 140, 21) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $browse $browsepath = FileSelectFolder( "Select your Gmod9 folder", "", 2) GUICtrlSetData($path, $browsepath) Case $msg = $Search GUICtrlSetData ($results, "Scanning for lua viruses...",1) $1 = FileExists( $path &"/lua/init/ULM.lua") If $1 = "ULM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: ULM.lua",1) FileDelete($path &"/lua/init/ULM.lua") EndIf $2 = FileExists( $path &"/lua/init/UFM.lua") If $2 = "UFM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: UFM.lua",1) FileDelete($path &"/lua/init/UFM.lua") EndIf $3 = FileExists( $path &"/lua/init/UCM.lua") If $3 = "UCM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: UCM.lua",1) FileDelete($path &"/lua/init/UCM.lua") EndIf $4 = FileExists( $path &"/lua/init/UEM.lua") If $4 = "UEM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: UEM.lua",1) FileDelete($path &"/lua/init/UEM.lua") EndIf $5 = FileExists( $path &"/lua/init/USM.lua") If $5 = "USM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: USM.lua",1) FileDelete($path &"/lua/init/USM.lua") EndIf $6 = FileExists( $path &"/lua/init/URM.lua") If $6 = "URM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: URM.lua",1) FileDelete($path &"/lua/init/URM.lua") EndIf $7 = FileExists( $path &"/lua/init/UNM.lua") If $7 = "UNM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: UNM.lua",1) FileDelete($path &"/lua/init/UNM.lua") EndIf $8 = FileExists( $path &"/lua/init/UPM.lua") If $8 = "UPM.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: UPM.lua",1) FileDelete($path &"/lua/init/UPM.lua") EndIf $9 = FileExists( $path &"/lua/init/ah.lua") If $9 = "ah.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: ah.lua",1) FileDelete($path &"/lua/init/ah.lua") EndIf $10 = FileExists( $path &"/lua/init/ERAT.lua") If $10 = "ERAT.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: ERAT.lua",1) FileDelete($path &"/lua/init/ERAT.lua") EndIf $11 = FileExists( $path &"/lua/init/oma2r3fxc6g.lua") If $11 = "om2r3fxc6g.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: oma2r3fxc6g.lua",1) FileDelete($path &"/lua/init/oma2r3fxc6g.lua") EndIf $12 = FileExists( $path &"/lua/init/racehook*.lua") If $12 = "racehook.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: racehook#.lua",1) FileDelete($path &"/lua/init/racehook#.lua") EndIf $13 = FileExists( $path &"/lua/init/racehook3.lua") If $13 = "racehook3.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: racehook3.lua",1) FileDelete($path &"/lua/init/racehook3.lua") EndIf $14 = FileExists( $path &"/lua/init/Z.lua") If $14 = "Z.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: Z.lua",1) FileDelete($path &"/lua/init/Z.lua") EndIf $15 = FileExists( $path &"/lua/init/urn.lua") If $15 = "urn.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: urn.lua",1) FileDelete($path &"/lua/init/urn.lua") EndIf $16 = FileExists( $path &"/lua/init/initialize.lua") If $16 = "initialize.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: initialize.lua",1) FileDelete($path &"/lua/init/initialize.lua") EndIf $17 = FileExists( $path &"/lua/init/luaupdate10.lua") If $17 = "luaupdate10.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: luaupdate10.lua",1) FileDelete($path &"/lua/init/luaupdate.lua") EndIf $18 = FileExists( $path &"/lua/init/makecode.lua") If $18 = "makecode.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: makecode.lua",1) FileDelete($path &"/lua/init/makecode.lua") EndIf $19 = FileExists( $path &"/lua/init/omgwtfbbq.lua") If $19 = "omgwtfbbq.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: omgwtfbbq.lua",1) FileDelete($path &"/lua/init/wtfbbq.lua") EndIf $20 = FileExists( $path &"/lua/init/GMXinit.lua") If $20 = "GMXinit.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: gmxinit.lua",1) FileDelete($path &"/lua/init/gmxinit.lua") EndIf $21 = FileExists( $path &"/lua/init/test.lua") If $21 = "test.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: test.lua",1) FileDelete($path &"/lua/init/test.lua") EndIf $22 = FileExists( $path &"/lua/init/vmfloaderclient.lua") If $22 = "vmfloaderclient.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: vmfloaderclient.lua",1) FileDelete($path &"/lua/init/vmfloaderclient.lua") EndIf $23 = FileExists( $path &"/lua/init/ulxboost.lua") If $23 = "ulxboost.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: ulxboost.lua",1) FileDelete($path &"/lua/init/ulxboost.lua") EndIf $24 = FileExists( $path &"/lua/init/antivirus_update.lua") If $24 = "antivirus_update.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: antivirus_update.lua",1) FileDelete($path &"/lua/init/antivirus_update.lua") EndIf $25 = FileExists( $path &"/lua/init/ULM2.lua") If $25 = "ULM2.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: ULM2.lua",1) FileDelete($path &"/lua/init/ULM2.lua") EndIf $26 = FileExists( $path &"/lua/init/zzz.lua") If $26 = "zzz.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: zzz.lua",1) FileDelete($path &"/lua/init/zzz.lua") EndIf $27 = FileExists( $path &"/lua/init/lw.lua") If $27 = "lw.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: lw.lua",1) FileDelete($path &"/lua/init/lw.lua") EndIf $28 = FileExists( $path &"/lua/init/lw_2.lua") If $28 = "lw_2.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: lw_2.lua",1) FileDelete($path &"/lua/init/lw_2.lua") EndIf $29 = FileExists( $path &"/lua/init/spoon.lua") If $29 = "spoon.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: spoon.lua",1) FileDelete($path &"/lua/init/spoon.lua") EndIf $30 = FileExists( $path &"/lua/init/teaspoon.lua") If $30 = "teaspoon.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: teaspoon.lua",1) FileDelete($path &"/lua/init/teaspoon.lua") EndIf $31 = FileExists( $path &"/lua/init/Facehook.lua") If $31 = "Facehook.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: facehook.lua",1) FileDelete($path &"/lua/init/facehook.lua") EndIf $32 = FileExists( $path &"/lua/init/vtfplugin.lua") If $32 = "vtfplugin.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: vtfplugin.lua",1) FileDelete($path &"/lua/init/vtfplugin.lua") Filedelete( $path &"") EndIf $33 = FileExists( $path &"/lua/init/gm_hockeywrite.lua") If $33 = "gm_hockeywrite.lua" Then GUICtrlSetData ($results, @CRLF &"Found and deleted: gm_hockeywrite.lua",1) FileDelete($path &"/lua/init/gm_hockeywrite.lua") EndIf If $1 and $2 and $3 and $4 and $5 and $6 and $7 and $8 and $9 and $10 and $11 and $12 and $13 and $14 and $15 and $16 and $17 and $18 and $19 and $20 and $21 and $22 and $23 and $24 and $25 and $26 and $27 and $28 and $29 and $30 and $31 and $32 and $33 = -1 Then GUICtrlSetData ($results, "No virus found") EndIf GUICtrlSetData ($results, @CRLF &"Placed antivirus log in lua/init", 1) $log = FileOpen( $path &"\Antivirus_log.txt", 1) FileWriteLine( $path &"\Antivirus_log.txt", @CRLF & "---------------") FileWriteLine( $path &"\Antivirus_log.txt", @CRLF & "Antivirus Scan.") FileWriteLine( $path &"\Antivirus_log.txt", @CRLF & "---------------") FileWriteLine( $path &"\Antivirus_log.txt", @CRLF & "Scan Complete:") FileWriteLine( $path &"\Antivirus_log.txt", @CRLF & "Results:" & $results) FileClose($log) EndSelect If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend Thank you.
Helge Posted August 24, 2006 Posted August 24, 2006 (edited) Study the documetation for FileExists and see if you can find out what exactly it is returning when a file exists and when it isn't. It's not the filename, that's for sure. What you're doing right now is something like this : If 0 = "tiss" Then MsgBox(64, "", "That's weird") Edited August 24, 2006 by Helge
Geeky Posted August 24, 2006 Author Posted August 24, 2006 (edited) My script worked before. I just found out why, I think i used FileFindFirstFile before, and thats why i made it like that. I'll try and change it back to see what happens. Thanks for the help Edited August 24, 2006 by Geeky
Helge Posted August 24, 2006 Posted August 24, 2006 It will work if you actually do as I told you to, which was to read what FileExists actually is returning. Look at the example in the helpfile, modify it for your use, and it will work. I'm giving you the answer for the problem you wanted to solve and you just ignore it. Yay.
PsaltyDS Posted August 24, 2006 Posted August 24, 2006 My script worked before. I just found out why, I think i used FileFindFirstFile before, and thats why i made it like that. I'll try and change it back to see what happens. Thanks for the help You have more problems than that. You seem to use control IDs thinking they will contain the data from the control, like your use of $path without doing GuiCtrlRead($path). This is reworked to use an array of files to check, but I only added the first five. It's untested, but should at least move you forward: expandcollapse popup#include <GUIConstants.au3> #include <array.au3> ; Create array of files to check for Global $aFileList[1] = [0] _ArrayAdd($aFileList, "/lua/init/ULM.lua") _ArrayAdd($aFileList, "/lua/init/UFM.lua") _ArrayAdd($aFileList, "/lua/init/UCM.lua") _ArrayAdd($aFileList, "/lua/init/UEM.lua") _ArrayAdd($aFileList, "/lua/init/USM.lua") Global $sFoundList = "" GUICreate( "Gmod Virus-Killah", 400, 300) $path = GUICtrlCreateInput( "Path...", 30, 20, 250, 21) $browse = GUICtrlCreateButton( "Browse...", 300, 20, 70, 21) $results = GUICtrlCreateEdit("", 30, 60, 340, 200, $ES_READONLY) $Search = GUICtrlCreateButton( "Search & Destroy", 130, 270, 140, 21) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $browse $browsepath = FileSelectFolder( "Select your Gmod9 folder", "", 2) GUICtrlSetData($path, $browsepath) Case $msg = $Search GUICtrlSetData($results, "Scanning for lua viruses...", 1) $FolderPath = GUICtrlRead($path) For $n = 1 To UBound($aFileList) - 1 If FileExists($FolderPath & $aFileList[$n]) Then FileDelete($FolderPath & $aFileList[$n]) $FoundList &= @CRLF & "Found and deleted: " & $FolderPath & $aFileList[$n] GUICtrlSetData($results, $FoundList) EndIf Next If $FoundList = "" Then GUICtrlSetData($results, "No virus found") GUICtrlSetData($results, @CRLF & "Placed antivirus log in lua/init", 1) $log = FileOpen($FolderPath & "\Antivirus_log.txt", 1) FileWriteLine($log, @CRLF & "---------------") FileWriteLine($log, @CRLF & "Antivirus Scan.") FileWriteLine($log, @CRLF & "---------------") FileWriteLine($log, @CRLF & "Scan Complete:") FileWriteLine($log, @CRLF & "Results:" & $FoundList) FileClose($log) EndSelect WEnd Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Geeky Posted August 24, 2006 Author Posted August 24, 2006 I've never used Arrays before, but i'll try and take a look at it. As far as i can see what i need to do to make the script you posted work like i wanted mine to do, i need to add all the names to arrays, like you started?
Geeky Posted August 24, 2006 Author Posted August 24, 2006 (edited) Okay, i've found a way (i think) to make updating the antivirus alot easier. Instead of having all the names in the script itself, i thought it would be better to have it in an external .txt document that everybody understands, and can add/remove viruses from. Now my question is; will this work? $file = FileOpen( "Virusdb.txt", 0) Global $aFileList[1] = [0] Do $line = FileReadLine($file) If Not $line = "" Then _ArrayAdd($aFileList, "/lua/init/" & $line) EndIf Until $line = "" Global $sFoundList = "" Edited August 24, 2006 by Geeky
Geeky Posted August 24, 2006 Author Posted August 24, 2006 Ok, now i've spend a few hours on the script, and i can't find the damn error. My script looks like this now: expandcollapse popup#include <GUIConstants.au3> #include <array.au3> ; Create array of files to check for Global $aFileList[1] = [0] $file = FileOpen( "virusdb.txt", 0) Do $line = FileReadLine($file) If Not $line = "" Then _ArrayAdd($aFileList, "/lua/init/"& $line &".lua") EndIf Until $line = "" Global $sFoundList = "" GUICreate( "Gmod Virus-Killah", 400, 300) $path = GUICtrlCreateInput( "Path...", 30, 20, 250, 21) $browse = GUICtrlCreateButton( "Browse...", 300, 20, 70, 21) $results = GUICtrlCreateEdit("", 30, 60, 340, 200, $ES_READONLY) $Search = GUICtrlCreateButton( "Search & Destroy", 130, 270, 140, 21) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $browse $browsepath = FileSelectFolder( "Select your Gmod9 folder", "", 2) GUICtrlSetData($path, $browsepath) Case $msg = $Search GUICtrlSetData($results, "Scanning for lua viruses...", 1) $FolderPath = GUICtrlRead($path) For $n = 1 To UBound($aFileList) - 1 If FileExists($FolderPath & $aFileList[$n]) Then FileDelete($FolderPath & $aFileList[$n]) $FoundList = @CRLF & "Found and deleted: " & $FolderPath & $aFileList[$n] GUICtrlSetData($results, $FoundList) EndIf Next If $FoundList = "" Then GUICtrlSetData($results, "No virus found") GUICtrlSetData($results, @CRLF & "Placed antivirus log in lua/init", 1) $log = FileOpen($FolderPath & "\Antivirus_log.txt", 1) FileWriteLine($log, @CRLF & "---------------") FileWriteLine($log, @CRLF & "Antivirus Scan.") FileWriteLine($log, @CRLF & "---------------") FileWriteLine($log, @CRLF & "Scan Complete:") FileWriteLine($log, @CRLF & "Results:" & $FoundList) FileClose($log) EndSelect WEnd When i press the Search & Destroy button, it says that $Foundlist wasn't declared :S Anyone who can help me? (sorry for triple post )
Helge Posted August 24, 2006 Posted August 24, 2006 You're trying to add data to a variable that isn't declared yet, and the error-message you got says exactly this. Maybe if we declare it first it would work... doesn't sound too absurd. <- code $FolderPath = GUICtrlRead($path) $FoundList = "" code ->
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