Jump to content

Script executing too slow


Go to solution Solved by Melba23,

Recommended Posts

Posted (edited)

#include <Misc.au3>
#include <MsgBoxConstants.au3>

$DLL = DllOpen("user32.dll")

$keyPressTimer = 0

; Application Loop
While 1
   ; Exit Application
   If _IsPressed("7A", $DLL) And _IsPressed("11", $DLL) Then
     ExitLoop
   EndIf

   If _IsPressed("57", $DLL) Then
      $keyPressTimer += 1
      If $keyPressTimer > 500 Then
         MsgBox("TestApp", "Debug", "W was held for more than half a second")
      EndIf
   ElseIf _IsPressed("57", $DLL) = 0 And $keyPressTimer > 0 Then
      $keyPressTimer = 0
   EndIf

Sleep(1); 1 milisecond
WEnd
DllClose($DLL)

Shouldn't Sleep(1) result in a 1 millisecond delay for the main loop? So the counter that increments as W is being held down should be increasing by 1 every millisecond right?

Edited by incubusor
  • Moderators
  • Solution
Posted (edited)

incubusor,

The minimum pause used by Sleep is about 10ms - this is a Windows limitation - so using a value of less than 10 will still pause for that minimum time. The exception is Sleep[0] which gives up the next timeslice for the thread. This has been explained many times on the forum and a quick search would have saved both our fingers some wear and tear - it is also quite clearly mentioned in the Help file. ;)

If you really want shorter pauses then monoceres produced this UDF which can pause for mere nanoseconds. :)

M23

Edited by Melba23
Typo

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see 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

 

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
×
×
  • Create New...