Sign in to follow this  
Followers 0
marcsusy

Problems with Function _Timer_SetTimer one please help

16 posts in this topic

Hi Everyone:

I'm using a script that makes a pc software inventory, but GUICtrlCreateProgress does not work, I want to know I'm doing wrong.

Greetings.

This is the script I use:

#include <Timers.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 264, 312, 75, 25)
$Progress1 = GUICtrlCreateProgress(88, 160, 478, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

 

Global $Form1,$iWait = 100,$direction = 1,$percent = 0
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
      Case $Button1
           _WMI()
   EndSwitch
WEnd

 

Func _WMI()

 

    $iTimerProgress = _Timer_SetTimer($Form1, $iWait, "_UpdateProgressBar")

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:"& "{impersonationLevel=impersonate}!"& $strComputer &    "rootcimv2")
    $colSoftware = $objWMIService.ExecQuery("Select * from Win32_Product")

    Local $Name[1],$Version[1]
   $i = 0
   For $objSoftware in $colSoftware
      $Name[$i] = $objSoftware.Name
      $Version[$i] = $objSoftware.Version
      $i += 1
      Redim $Name[$i+1]
      Redim $Version[$i+1]
   Next

EndFunc

 

Func _UpdateProgressBar($hWnd, $Msg, $iIDTimer, $dwTime)
   #forceref $hWnd, $Msg, $iIDTimer, $dwTime
   $percent += 5 * $direction
   GUICtrlSetData($progress1, $percent)
   IF $percent = 100 Or $percent = 0 Then $direction *= -1
      IF $percent = 100 Then
        GUICtrlSetColor($progress1, 0xff0000)
   ElseIf $percent = 0 Then
      GUICtrlSetColor($progress1, 0x0000ff)
   EndIf
EndFunc

Share this post


Link to post
Share on other sites



Hello I3ill:

I have tried and does not work I may not do as you say, you can put me an example please.

thanks
 

Share this post


Link to post
Share on other sites

#include <Timers.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 264, 312, 75, 25)
$Progress1 = GUICtrlCreateProgress(88, 160, 478, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

 

Global $Form1,$iWait = 100,$direction = 1,$percent = 0
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
      Case $Button1
           _WMI()
   EndSwitch
WEnd

 

Func _WMI()

 

    $iTimerProgress = _Timer_SetTimer($Form1, $iWait, _UpdateProgressBar)
;~  _________________________________________________^^^^^^^^^^^^^^^^^^^^^ Here !!!

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:"& "{impersonationLevel=impersonate}!\\"& $strComputer &    "\root\cimv2")
    $colSoftware = $objWMIService.ExecQuery("Select * from Win32_Product")

    Local $Name[1],$Version[1]
   $i = 0
   For $objSoftware in $colSoftware
      $Name[$i] = $objSoftware.Name
      $Version[$i] = $objSoftware.Version
      $i += 1
      Redim $Name[$i+1]
      Redim $Version[$i+1]
   Next

EndFunc

 

Func _UpdateProgressBar($hWnd, $Msg, $iIDTimer, $dwTime)
   #forceref $hWnd, $Msg, $iIDTimer, $dwTime
   $percent += 5 * $direction
   GUICtrlSetData($progress1, $percent)
   IF $percent = 100 Or $percent = 0 Then $direction *= -1
      IF $percent = 100 Then
        GUICtrlSetColor($progress1, 0xff0000)
   ElseIf $percent = 0 Then
      GUICtrlSetColor($progress1, 0x0000ff)
   EndIf
EndFunc

Share this post


Link to post
Share on other sites
Hello I3ill

I had tried calling the function without quotation marks, but I get syntax error
 
Thanks

Share this post


Link to post
Share on other sites
I'm using version 3.3.0

the error is this

  : ERROR: syntax error
                $ iTimerProgress = _Timer_SetTimer ($ Form1, $ iwait, _UpdateProgressBar)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

Share this post


Link to post
Share on other sites

I doubt anyone still has v3.3.0.0, maybe v3.3.6.1 at a push. Most are using either v3.3.8.1 or v3.3.10.x and above.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites
I'll try to V3.3.10.2

Share this post


Link to post
Share on other sites

I haven't really analysed your problem. Sorry.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites
Please have the link to download the portable version V3.3.10.0

Share this post


Link to post
Share on other sites
Sorry,I've tried my script, but no found the solution, help me please
 
Thanks

Share this post


Link to post
Share on other sites

marcsusy,

From what I can see the progress bar setting has absolutely nothing to do with the time taken by the WMI call and is merely updated by a simple timer - so the actual setting is meaningless. Why not use the type of progress bar designed for use in these situations: :huh:

#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>

$hGUI = GUICreate("Test", 500, 500)
GUICtrlCreateProgress(10, 10, 400, 20, $PBS_MARQUEE)
GUICtrlSendMsg(-1, $PBM_SETMARQUEE, True, 50) ; final parameter is update time in ms
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Simplifies the code and lets the user know that something is happening for an indeterminate period. ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

I am sorry Melba the progress is stop when I press the botom $Button1,maybe do something wrong

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
 
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 264, 312, 75, 25)
$Progress1 = GUICtrlCreateProgress(88, 160, 478, 17, $PBS_MARQUEE)
GUICtrlSendMsg(-1, $PBM_SETMARQUEE, True, 50) ; final parameter is update time in ms
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
 
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
      Case $Button1
           _WMI()
   EndSwitch
WEnd
 
Func _WMI()
$strComputer = "."
    $objWMIService = ObjGet("winmgmts:"& "{impersonationLevel=impersonate}!"& $strComputer &    "rootcimv2")
    $colSoftware = $objWMIService.ExecQuery("Select * from Win32_Product")
    Local $Name[1],$Version[1]
$i = 0
For $objSoftware in $colSoftware
$Name[$i] = $objSoftware.Name
$Version[$i] = $objSoftware.Version
$i += 1
Redim $Name[$i+1]
Redim $Version[$i+1]
Next
EndFunc
 
 
Thanks

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  
Followers 0