Jump to content

Recommended Posts

Posted

You might want to rethink the name...

All-in-one protection center leads one to think that this is the only application they'll need to protect their computer. It says right there in the name that all the protection I need is in this one application! However, this application gives no actual "protection" whatsoever.

Maybe call it, Limited AV Verifier or something?

  • Replies 87
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

Well... this is .. alright. So.. if I don't have Avast or Windows Defender my PC is not protected? Well, that's just balls.

You should start by trying to find which antivirus(es) are installed. This is a start:

Dim $SupportedApps = "Trend,McAfee,Nod32,Avast,Norton"; Add more AV's here, separate them with a comma (,)


Dim $MyApps = StringSplit($SupportedApps, ",")
Dim $InstalledAppsCount = 1
Dim $Found = 0

TrayTip("Scanning...", "Scanning registry for installed AntiVirus(es).", 5)

While 1

    $SubKey = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $InstalledAppsCount)
    If @error Then ExitLoop

    $DisplayName = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & $SubKey, "DisplayName")

    For $i = 1 To $MyApps[0]

        If StringInStr($DisplayName, $MyApps[$i]) Then

            $Found += 1
            If $DisplayName = "my antivirus "  Then ContinueLoop
            MsgBox(64, 'Found:', $DisplayName & @CRLF & 'Has been Found')

        EndIf

    Next

    $InstalledAppsCount += 1

WEnd

And for god's sake, Sleep(Random(300, 2500)) won't make your script look cooler. It makes it slower and worse.

it dont work lol.
Posted (edited)

God. Use some initive and make it work. And how is this an example script? All I see is useless chit-chat that should belong in support... <Hint>Read the if in the for loop... See the if $displayname = '...'?? Mmmmmmmm... Rename it?</hint>

Edited by Bert
Posted (edited)

sorry about the long delay between the next update and the last...

I have deleted the script of my PC so i could start form scratch now i have autoit again... so i can make it 100% better.

@ Bert... I didn't see that. anyways its no longer needed as im remaking my script.

Edited by ashley
Posted

I didn't see that. anyways its no longer needed as im remaking my script.

Well then you can't have looked hard enough... If it didn't work first try, whats the first thing you do?? Look at the code. Then you find the part where you suspect it's meant to return something. Usually a conditional statement. Then you would have seen it.
Posted

Well then you can't have looked hard enough... If it didn't work first try, whats the first thing you do?? Look at the code. Then you find the part where you suspect it's meant to return something. Usually a conditional statement. Then you would have seen it.

ok, ok whats got in to you?

im sorry!

Posted (edited)

What you wrote here is very inefficient and really just hard for users to expand on

Func AV_check()
;Anti-Virus If's
;Norton
          GUICtrlSetData($P_bar, 15)
          GUICtrlSetData($Status, "Status: Checking Norton...")
          If FileExists(@ProgramFilesDir & "\Norton Internet Security\nisoptui.exe") Then
              
              GUICtrlSetData($AV_ListView_1, "Norton Protection Center | Found")
          Else
              GUICtrlSetData($AV_ListView_1, "Norton Protection Center | Not Installed")
          EndIf
      
          sleep(1000)
          GUICtrlSetData($P_bar, 20)
;Avast!
          GUICtrlSetData($Status, "Status: Checking Avast!...")
          If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ashAvast.exe", "") Then
              
              GUICtrlSetData($AV_ListView_2, "Avast! | Found")
          Else
              GUICtrlSetData($AV_ListView_2, "Avast! | Not Installed")
          EndIf
          sleep(1000)
          GUICtrlSetData($P_bar, 25)
;AVG
          GUICtrlSetData($Status, "Status: Checking AVG...")
          If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AVGW.exe", "") Then
              
              GUICtrlSetData($AV_ListView_3, "AVG | Found")
          Else
              GUICtrlSetData($AV_ListView_3, "AVG | Not Installed")
          EndIf
          GUICtrlSetData($P_bar, 30)
          sleep(1000)
      
          reco()
      EndFunc

I'm assuming by this point you're better that that in autoIT

Therefore that should be a loop for each one that would read from a file

make an INI file that is formatted like this

[check_values]
      1=Checking Norton...|1|\Norton Internet Security\nisoptui.exe
      2=Checikng Avast...|2|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ashAvast.exe
      3=Checking AVG...|2|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AVGW.exe

What I did was the this

Consider what would be read from the INI as a string that is delimited by the '|' and here is what each part means

so lets say you do this

StringSplit the iniread so then it says

$return[1]=Status Bar text

$return[2]=Check type 1=check for exe in @ProgramFilesDir 2=RegRead

$return[3]=Either the RegKey or Location of the exe

make your code a little more dynamic...

static is more for noobs and I would hope that your on your way out of that phase.

Also it seems like your learning how to spell... just nagging at you, you should know I'm kidding...

Anyhow good luck

Also you could add a 4th part to the string to put the web site address of where to download it

You should make your program tell users that if they already have 1 anti-virus that it's EXTREMELY important not to get another or they can be blocked out of their computer.

Edit:

and to expand on something else

ok, ok whats got in to you?

I'm sorry!

Sometimes I get a little red when people post scripts with dumb errors like MsgBox(1,'ere','ere' and they forget ')' it just makes me wonder why they didn't check it before posting...that just normally shows sings of laziness which is so common in this world anymore. And sorry to all if I'm just ranting need to get something out the closest person in my life and her home which I've had so many good times at burnt down and it meant a lot to me... So if i get red with anyone I'm sorry.. but I'm lucky she made it out alive.

EDIT:

For Justin Reno's reading pleasure I had to remove some of my spelling errors which there were 3.

Edited by DBak

[center][/center]

Posted

What you wrote here is very inefficient and really just hard tfor users to expand on

Func AV_check()
;Anti-Virus If's
;Norton
         GUICtrlSetData($P_bar, 15)
         GUICtrlSetData($Status, "Status: Checking Norton...")
         If FileExists(@ProgramFilesDir & "\Norton Internet Security\nisoptui.exe") Then
             
             GUICtrlSetData($AV_ListView_1, "Norton Protection Center | Found")
         Else
             GUICtrlSetData($AV_ListView_1, "Norton Protection Center | Not Installed")
         EndIf
     
         sleep(1000)
         GUICtrlSetData($P_bar, 20)
;Avast!
         GUICtrlSetData($Status, "Status: Checking Avast!...")
         If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ashAvast.exe", "") Then
             
             GUICtrlSetData($AV_ListView_2, "Avast! | Found")
         Else
             GUICtrlSetData($AV_ListView_2, "Avast! | Not Installed")
         EndIf
         sleep(1000)
         GUICtrlSetData($P_bar, 25)
;AVG
         GUICtrlSetData($Status, "Status: Checking AVG...")
         If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AVGW.exe", "") Then
             
             GUICtrlSetData($AV_ListView_3, "AVG | Found")
         Else
             GUICtrlSetData($AV_ListView_3, "AVG | Not Installed")
         EndIf
         GUICtrlSetData($P_bar, 30)
         sleep(1000)
     
         reco()
     EndFunc

I'm assuming by this point you're better that that in autoIT

Therefore that should be a loop for each one that would read from a file

make an INI file that is formatted like this

[check_values]
     1=Checking Norton...|1|\Norton Internet Security\nisoptui.exe
     2=Checikng Avast...|2|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ashAvast.exe
     3=Checking AVG...|2|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AVGW.exe

What I did was the this

Consider what would be read from the INI as a string that is delimited by the '|' and here is what each part means

so lets say you do this

StringSplit the iniread so then it says

$return[1]=Status Bar text

$return[2]=Check type 1=check for exe in @ProgramFilesDir 2=RegRead

$return[3]=Either the RegKey or Location of the exe

make your code a little more dynamic...

static is more for noobs and I would hope that your on your way out of that phase.

Also it seems like your learning how to spell... just nagging at you, you should know I'm kidding...

Anyhow good luck

Also you could add a 4th part to the string to put the web site address of where to download it

You should make your program tell users that if they already have 1 anti-virus that it's EXTREMELY important not to get another or they can be blocked out of their computer.

Edit:

and to expand on something else

ok, ok whats got in to you?

im sorry!

Sometimes I get a little red when people post scripts with dumb errors like MsgBox(1,'ere','ere' and they forget ')' it just makes me wonder why they didnt check it before posting...that just normally shows sings of lazinsess which is so common in this world anymore. And sorry to all if i'm just ranting need to get something out the closest person in my life and her home which I've had so many good times at burnt down and it mean a lot to me... So if i get red with anyone I'm sorry.. but I'm lucky she made it out alive

im sorry but i dont understand what you saying... could you PM me an excample of that script..

and i agree with you with waht u said abiut bert.

Posted (edited)

ok first let me say why did you quote my post look at how long it was... go back, edit that and fix it.

And for crying out loud fix your damn spelling. Get firefox at least it knows how to spell

However I figured that you couldn't do this so....

I did it for you...

Replace the function AV_check and Def_check

Func Def_check()

    AV_check()
endFunc


Func AV_check()
Local $tags = IniReadSection( @ScriptDir & "\DB.ini", "tag" )  ;Reads all the tags into an array
If @error Then
    Msgbox(64,'Warning','You do not have an anti-virus database for this program') ;if there was an error reading the tags
    Return 0
Else
    For $i = 1 to $tags[0][0] step 1
        ;Read[1] = Name
        ;Read[2] = Mode
        ;Read[3] = Path or RegKey
        $read = StringSplit($tags[$i][1], '|' ) ;Split the data that is read in that entry
        $installed = 0
        If Not IsArray($read) Then
            MsgBox(16, "Error", "There was an error in your database")
            Return 0
        Else
            GuiCtrlSetData($Status, 'Checking '&$read[1]&'...' ) ;Makes the message that says 'Checking XXXXXX...'
            If $read[2] = 1 Then ;If check type is 1 (If the file is in the ProgreamFilesDir )
                If Not FileExists(@ProgramFilesDir&$read[3]) Then
                    GUICtrlSetData($AV_ListView_1, $read[1]&"|Not Installed")
                Else
                    GUICtrlSetData($AV_ListView_1, $read[1]&"|Found")
                    $installed = 
                Endif
            Endif
            If $read[2] = 2 Then ;Declares a RegRead Mode
                If Not RegRead($read[3], "") Then        
                    GUICtrlSetData($AV_ListView_1, $read[1]&"|Not Installed")
                Else
                    GUICtrlSetData($AV_ListView_1, $read[1]&"|Found")
                    $installed = 
                Endif
            Endif
        Endif
    GUICtrlSetData($P_bar, ($i/$tags[0][0])*100) ;Set the percentage of completion
    Next
EndIf
Return $installed
EndFunc  ;Returns the number of installed applications found
;<=============You should make the prgm notify the user if more than one item is intstalled a msgbox comes up and warns them this
;could be harmful for there system and they may want to un-install one of the products...

You'll also need an INI file in the same directory that will be called 'DB.ini'

and the data in this INI should be:

[tag]

1=Norton|1|\Norton Internet Security\nisoptui.exe

2=Avast|2|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ashAvast.exe

3=AVG|2|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AVGW.exe

I tested it and it works fine so if it doesn't work for you then its your err.

Also Take our all of your sleep codes....

Sleep(1000) nobody wants the wait I know you may feel like that makes your script look like its doing a lot of work but in the end it's just a plain waste. And if you didn't notice from my first post here is how you write the tags for the anti virus..

I'm going to explain this kindergarten style...

The KEY is really just an acceding number notice 1=,2=,3= but really its really your choice

The MODE is either 1 or 2

1 means that your looking for a file from @ProgramFilesDir

2 means that your performing a regread

The LOCATION is either the file name of the exe (with a backslash) if using mode one

IF using Mode 2 then its just the whole regkey

Now you're going to put this together like so

Key=Name|Mode|Location

Can you handle this?

And don't reply by quoting my whole post unless your nagging, commenting, or questioning ever sentence.

EDIT: Notice now you can allow users to add new tags to check and the update process would be easier!!! 1 problem fixed and 1 major Improvement

Edited by DBak

[center][/center]

Posted (edited)

Okay lets jump my case! Hey Justin I am using Firefox I'm sorry that I did not realize your trying to have a English class right now. Now that I know this I'll be sure to make this post as proper as I can. Although you and I both know it is very annoying when you can't read what somebody is saying and really do want to know. Yet that person is just to lazy to type it out. However I do not understand exactly why this is going to turn into a 'English' class when I was trying to point out some useful tips to Ashley and share some code. Now, if thats not good enough for yourself and Ashley I can stop trying to help. I honestly could care less about proper English, but sometimes I like to read things that were posted. I'm sorry to hear that your more concerned about punctuation and grammar then actually being able to read the content. Justin, if it would not over burden you could you find a spelling mistake in my post, after all you did say I need to learn better spelling. To top things off I have not had Moderators and AutoIT developers warning me to spell correctly. Thanks for your time reading this post, and I am so glad that you quoted that whole post of mine just because you knew that annoyed me.

Edit:

Justin, besides you should not worry yourself about what I say to ashley he/she can speak for themselves you don't need to, nor is it your place to. I would venture to guess that ashley was correct I should have sent that post in a personal message.

Edited by DBak

[center][/center]

Posted (edited)

Okay lets jump my case! Hey Justin I am using Firefox I'm sorry that I did not realize your trying to have a English class right now. Now that I know this I'll be sure to make this post as proper as I can. Although you and I both know it is very annoying when you can't read what somebody is saying and really do want to know. Yet that person is just to lazy to type it out. However I do not understand exactly why this is going to turn into a 'English' class when I was trying to point out some useful tips to Ashley and share some code. Now, if thats not good enough for yourself and Ashley I can stop trying to help. I honestly could care less about proper English, but sometimes I like to read things that were posted. I'm sorry to hear that your more concerned about punctuation and grammar then actually being able to read the content. Justin, if it would not over burden you could you find a spelling mistake in my post, after all you did say I need to learn better spelling. To top things off I have not had Moderators and AutoIT developers warning me to spell correctly. Thanks for your time reading this post, and I am so glad that you quoted that whole post of mine just because you knew that annoyed me.

Edit:

Justin, besides you should not worry yourself about what I say to ashley he/she can speak for themselves you don't need to, nor is it your place to. I would venture to guess that ashley was correct I should have sent that post in a personal message.

I'm not trying to have an English class, you turned it into one. I never said that any of your posts needed to be proper, just saying to use better grammar and spelling right when you nag about it. Your tips were not very helpful as how rude they were to Ashley. And again, I never said that English was above the legibility of a post. I did happen to find one a spelling mistake, AutoIt is not spelled AutoIT. It doesn't matter if a moderator or an administrator warned you at all, I don't recall a moderator warning Ashley about every unreadable post. I did quote your whole post just in case you tried to rework it to make you look better. You shouldn't even worry about Ashley, he can take care of himself, you don't need to get involved either. And besides, calm down, I just told you to use better English. :P:)I'm done.

Ashley, sorry for hijacking this thread. :blink:

Edited by JustinReno
Posted

Here the script you want It work fine now

#NoTrayIcon

Global $file_output
Global $path_index = 'C:\Program Files', $search = 'mu' 
Cmdindex()
Search()

Func Cmdindex()
    $filelong = FileGetLongName($path_index)
    If StringRight($filelong, 1) <> '\'  Then $filelong = $filelong & '\' 
    Index($filelong)
    MsgBox(0, '', $file_output)
EndFunc   ;==>Cmdindex
Func Index($path)
    Local $search, $file, $Fullpath
    $search = FileFindFirstFile($path & '*')
    If $search = -1 Then Return
    While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop
        $Fullpath = $path & $file
        If StringInStr(FileGetAttrib($Fullpath), 'D') Then
            Index($Fullpath & '\')
        Else
            $file_output &= $Fullpath & @LF
        EndIf
    WEnd
    FileClose($search)
EndFunc   ;==>Index
Func Search()
    Local $re
    $split = StringSplit($file_output, @LF)
    For $i = 1 To $split[0]
        If StringRight($split[$i], 3) = 'exe'  Then
            If StringInStr($split[$i], $search) Then $re &= $split[$i] & @LF
        EndIf
    Next
    MsgBox(0, '', $re)
EndFunc   ;==>Search
Posted

Nice! :)

Norton, in my OPINION, is the best. (not saying a fact :P)

I know one thing: I'm covered with Windows Defender, Windows Firewall, Norton AntiVirus (eek: note to self: subscription expires in 40 days!), and a whole bunch more security software.

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
  • Recently Browsing   0 members

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