Jump to content

Find specific program using WMI


Recommended Posts

Another brain fart on my part. StringInStr will return the POSITION of the substring, $Model will NEVER equal the return of StringInStr, so that's why it was failing. You need to rewrite that line to If StringInStr($Model,"Latitude D830") Or StringInStr($Model,"HP Compaq 6710b") Then.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Excellent! This works.

Here is the final result in case it helps someone else.

#include <ExplorerCopy.au3>
$intelChk = False
$PCChk = False
Global $Model,$PCChk

_PCChk()
_IntelChk()

If $PCChk = False Then
    Exit
Else
    _Intel()
EndIf

Func _Intel()
    If $intelChk = False Then
        MsgBox(0,"Intel PROSet Wireless","The Intel PROSet Wireless application is out of date." & @CR & "The latest version will now be installed in the background." & @CR & "NOTE: You will lose wireless connectivity during this up date. Users on docking stations will notice no connectivity issues.",8)
        _ExplorerCopy("\\app2\k-12$\Intel Wireless\Intel PROSet Wireless.msi","C:\Windows\!DriverCache\Intel 3945 ABG Drivers and Wireless Profile\",BitOR($FOF_SIMPLEPROGRESS,$FOF_NOERRORUI,$FOF_NOCOPYSECURITYATTRIBS,$FOF_NOCONFIRMMKDIR,$FOF_NOCONFIRMATION))
        MsgBox(0,"Intel PROSet Wireless","The Intel PROSet Wireless installation is about to begin.",5)
        RunWait('msiexec /i "C:\Windows\!DriverCache\Intel 3945 ABG Drivers and Wireless Profile\Intel PROSet Wireless.msi" /qb /norestart ADDLOCAL=WIFI_Driver,WIFI_Software,WIFI_UI,WIFI_SSO,WIFI_PLC,WIFI_Simple_Config,WIFI_Troubleshooter,WIFI_Help,WIFI_Custom_Help')
        MsgBox(0,"Intel PROSet Wireless","The Intel PROSet Wireless application has now been updated.")
        Exit
    Else
        MsgBox(0,"Intel PROSet Wireless","The Intel PROSet Wireless application is already installed.")
        Exit
    EndIf
EndFunc

Func _PCChk()
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

    $Output=""
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\")
    $colItems2 = $objWMIService.ExecQuery('SELECT Model FROM Win32_ComputerSystem', "WQL", _
                                              $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    If IsObj($colItems2) Then
        For $objItem2 In $colItems2
            $Model = $objItem2.Model
            If StringInStr($Model,"Latitude D830") Or StringInStr($Model,"HP Compaq 6710b") Then
                $PCChk = True
            EndIf
            ExitLoop
        Next
    Else
        Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_Product" )
    Endif
EndFunc

Func _IntelChk()
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"


    $Output=""
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\")
    $colItems = $objWMIService.ExecQuery("SELECT Name, Version FROM Win32_Product WHERE Name = 'Intel(R) PROSet/Wireless WiFi Software' and Version = '13.03.0000'", "WQL", _
                                              $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    If IsObj($colItems) Then
        For $objItem In $colItems
            $Output1 = $objItem.Name
            $Output2 = $objItem.Version
            If $Output1 = "Intel(R) PROSet/Wireless WiFi Software" And $Output2 = "13.03.0000" Then
                $intelChk = True
            EndIf
            ExitLoop
        Next
    Else
        Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_Product" )
    Endif
EndFunc

Thanks for your help!

Link to comment
Share on other sites

I'm glad it's finally working for you. Monday mornings are not a great time to be thinking for me. ;)

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

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...