Sign in to follow this  
Followers 0
MvGulik

[solved] @MSEC macro, Delayed update background?

5 posts in this topic

#1 ·  Posted (edited)

Wondering about the seemingly delayed timed update that seems to be in effect with the @MSEC macro.

Test code:

For $i = 0 to 100
    DebugOut('@MSEC', @MSEC)
    Sleep(10)
Next

Output:

@MSEC = "359" {St} [0,0]
@MSEC = "375" {St} [0,0]
@MSEC = "390" {St} [0,0]
@MSEC = "390" {St} [0,0] ;; dupe
@MSEC = "406" {St} [0,0]
@MSEC = "421" {St} [0,0]
@MSEC = "437" {St} [0,0]
@MSEC = "437" {St} [0,0] ;; dupe
@MSEC = "453" {St} [0,0]
@MSEC = "468" {St} [0,0]
@MSEC = "484" {St} [0,0]
@MSEC = "484" {St} [0,0] ;; dupe
...
Edited by iEvKI3gv9Wrkd41u

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

iE...,

I get just a few 11/12 returns when I run this - never anything less than 10.

$iLast = @MSEC - 10
For $i = 0 to 100
    $iNow = @MSEC
    $iDiff = $iNow - $iLast
    If $iDiff < 0 Then $iDiff = 1000 + $iDiff
    If $iDiff <> 10 Then
        ConsoleWrite($iNow & " - " &$iDiff & @CRLF)
    EndIf
    $iLast = $iNow
    Sleep(10)
Next

M23

Edit: I meant 10 not 0 - and yes it was before coffee time! :graduated:

Edited by Melba23

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

#3 ·  Posted (edited)

Found additional topic about this.

*Reading up now.

---

... never anything less than 0.

:graduated: ... Think you forgot to take your morning coffee.

;)

---

After experimenting with calling GetSystemTime() directly and searching MSDN I have found that this is a hardware limitation. The clock on most systems apparently, is only updated 64 times a second giving the 15 to 16 millisecond step observed.

Well, that kinda solves it.

Edited by iEvKI3gv9Wrkd41u

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Think Bowmore has a good point here.

That means that this is definately not an AutoIt bug, but possibly the documation needs to be updated to point out this limitation.

If only to make sure its apparent that @MSEC should not be (fully) trusted to always give some unique data back.

(Right ... that only applies to cpu's that run at 1kHz or less of course ... )

Edited by iEvKI3gv9Wrkd41u

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

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

  • Similar Content

    • IamKJ
      By IamKJ
      I am trying to allow the GUI to gather info as to when to execute a function.  I am having trouble doing this.  So far this is what I have.
       
      ;Timer Func timer () If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(36,"Timer","Please format your answer in 00:00:00:000") Select Case $iMsgBoxAnswer = 6 ;Yes Global $infotime = InputBox ('Time', 'What time to execute?') Do $rawtimer = ToolTip(@Hour & ':' & @Min & ':' & @Sec & ':' & _MSec()) until $rawtimer = $infotime if $rawtimer = $infotime Then msgbox (0,'Worked','Worked') Else EndIf Case $iMsgBoxAnswer = 7 ;No Exit EndSelect EndFunc Func _MSec() Local $stSystemTime = DllStructCreate('ushort;ushort;ushort;ushort;ushort;ushort;ushort;ushort') DllCall('kernel32.dll', 'none', 'GetSystemTime', 'ptr', DllStructGetPtr($stSystemTime)) $sMilliSeconds = StringFormat('%03d', DllStructGetData($stSystemTime, 8)) $stSystemTime = 0 Return $sMilliSeconds EndFunc I have also tried _GUIToolTip_GetText in order to read the tooltip until the time specified, but it still doesn't work.  Any help would be great.
    • SkysLastChance
      By SkysLastChance
      I have a Razer Blackwidow Ultimate keyboard that has 5 extra keys marked M1 - M5. I was wondering if I would be able to setup Macros in AutoIt using these.
      I saw that Fn key is not possible. 
      I am also aware that the M1 keys work with razor snyapse. However, I am at work and can't download that program.
      If someone could let me know and point me in the right direction if it is possible I would be grateful.
    • TheAutomator
      By TheAutomator
      How can you get the downloads folder in AutoIT?
      As far as i know there isn't a macro for it right? like @Downloads or something?
      The ugly solution would be typing in the whole path but what if the user has chosen another location?
      Need to clear that folder regularly on my work and on different accounts..
      regards, TheAutomator
    • ur
      By ur
      I wrote a macro for outlook to send an email.
      Till yesterday it worked, don't know why it is not working today
      I am getting below error when I ran the macro.
       

    • 31290
      By 31290
      Hi everyone, 
      I'm writing a tool that will help my technician adding a user in the local admin group. 
      1- As the user, at first, is not part of the group, launching the .exe file ask for admin credentials. Thing is, whereas I'm using 
      RunWait(@ComSpec & ' /c ' & 'Net LocalGroup Administrators' & @username & ' /add' ,"") The @username macro is taking the admin user account in the variable instead of the current logged user one.
      Do you know how can I face this and have the "real" username value returned?
      2- do you guys think it's possible to give the admin access temporary? Maybe something to write in the reg? task scheduler? compare dates and execute a .exe? etc...?
      Thanks in advance
      -31290