Jump to content
Sign in to follow this  

How to use alternative to CType in Autoit?/Important Windows updates

Recommended Posts



i would like to ask for some help on how to write something like this in Autoit

If CType(update, WUApiLib.IUpdate3).BrowseOnly = True Then
    opt_updates = opt_updates + 1
    imp_updates = imp_updates + 1
 End If

I`m trying to find Important Windows updates only, but for some reason this code:

$ColNeeded = $objSearcher.Search("BrowseOnly=0 and IsInstalled=0 and IsHidden=0")

$update = $ColNeeded.Updates.Item($i - 1)

returns all update (important and optional) as important (even though BrowseOnly=0). I think i`m missing a reference to WUApi.DLL in my code but i couldn`t find anything else to help me :/

If someone could help me either by providing a Autoit alternative to 

CType(update, WUApiLib.IUpdate3).BrowseOnly = True

or another way to find only important Windows updates i would be very grateful.
Thank you

Share this post

Link to post
Share on other sites

If anybody else got this problem of "BrowsOnly=0" not working and would like to do find only important updates for Windows i came up with this solution.
Hope it`s going to help someone:


$obj_search = ObjCreate("Microsoft.Update.Searcher")
    $obj_search.ServerSelection = 2
    $obj_search.Online = True

    ;looking for updates
    $obj_result = $obj_search.Search("IsInstalled=0 and IsHidden=0") ;you can change this to something else (BrowsOnly=0 will not work)
    $obj_updates = $obj_result.Updates

    For $i = 0 To $obj_updates.Count - 1
        $obj_categories = $obj_updates.Item($i).Categories
        $s_Cat = ""
        $s_Cat = $obj_categories.Item(0).Name
        If $s_Cat <> "Updates" Or $s_Cat <> "Drivers" Or $s_Cat <> "Feature Packs" Then
            ;!!-- Important updates only --!!
            $array[0][0] += 1
            $array[$array[0][0]][0] = $obj_updates.Item($i).Title
            $array[$array[0][0]][1] = $s_Cat
            $array[$array[0][0]][2] = Round($obj_updates.Item($i).MaxDownloadSize / 1024)
            $array[$array[0][0]][3] = 1 ;to indicate important updates in array
            ;!!-- All Optional updates --!!
            $array[0][0] += 1
            $array[$array[0][0]][0] = $obj_updates.Item($i).Title
            $array[$array[0][0]][1] = $s_Cat
            $array[$array[0][0]][2] = Round($obj_updates.Item($i).MaxDownloadSize / 1024)

    ReDim $array[$array[0][0] + 1][5]


Share this post

Link to post
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
Sign in to follow this  

  • Similar Content

    • Valnurat
      By Valnurat
      My color of pixel exists more than one place.
      How can I control the position so I find the exact position before I continue in my code?
    • nacerbaaziz
      By nacerbaaziz
      Hi dear
      With this script you can print Unicode text in the CMD screen
      the script is  easy to use
      just you  write the text that contains Unicode in the first input
      and the script automatically reflect the code in the second input
       you can copy the text to the clipboard
      or you can try printing the text in the CMD window
      I apologize to everyone for colors and shape if not appropriate
      I'm a blind man and I do not see
      Thank you for your understanding
      Greetings to all of youCmdUtM.au3
    • Abdulla060
      By Abdulla060
      Hello all, i have about 20 arrays in my script and i need to delete the first element of each, i have the name of the arrays in another array (its used in another part of the script)  and i tried to passing the names to from that array to the _ArrayDelete function but nothing happens and i get an error code :1 which state that i'm trying to delete an array which is not an array
      code example
      #include <Array.au3> global $allarrays[3] = ['array1','array2','array3'] global $array1[3] = ['1', '2', '3'] global $array2[3] = ['1', '2', '3'] global $array3[3] = ['1', '2', '3'] for $i = 0 to UBound($allarrays) - 1 _ArrayDelete($allarrays[$i], 0) Next _ArrayDisplay($array1) obviously i can just use  _arraydelete over and over however i'm looking for a more elegant way of doing this
    • Rammanan
      By Rammanan
      Hi all, Below is my script,
      Pls advise me if any wrong on that....File exit in location but the return -1.
      FileOpen($file, 0)
         $line = FileReadLine($file)
      Local $aArray = _FileListToArrayRec($serverpath, "*|*.txt", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_NOPATH)
      If @error Then
              MsgBox($MB_SYSTEMMODAL, "Ooops!", "No files found")
          ;_ArrayDisplay($aArray, "Sorted tree")
                 Local $hSearch = FileFindFirstFile($line)
    • Theodoor
      By Theodoor
      I am trying to use the ControlClick in a "save as"-window to select the path of where to save the document.
      I found out that when in press the icon in front of the path, i select the path. So I am trying to press that button (i have attached a print screen of this window).
      While trying to figure out how i had to use the ControlClick, it said somewhere that i could us Au3Info to find out what title,... i should use with the ControlClick.
      The result of the Au3Info I have attached aswel.
      The ControlClick that i tried are these: (and none of these even move the mouse)
      ControlClick("[CLASS:ToolbarWindow32; INSTANCE:4]", "", "", "Left" ,1 ,10,10)
      ControlClick("[CLASS:ToolbarWindow32; INSTANCE:4]", "", "1001", "Left" ,1 ,10,10)
      ControlClick("[CLASS:ToolbarWindow32]", "", "", "Left" ,1 ,10,10)
      ControlClick("Save project as", "", "", "Left" ,1 ,10,10)
      I don't know what I am doing wrong.
      Should I use a controlID? is my windowtitle wrong?
      Can anyone help me?
      Thanks in advance,


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.