- 版本 v1.1.15.01
- 指南和概述
- 常见问题(FAQ)
- 按字母排序的命令和函数索引
- AutoHotkey 脚本展示
- 变更和新功能
- 基本用法和语法
- 迁移到 AutoHotkey 1.1(AutoHotkey_L)
- 环境管理
- 本机代码互操作
- 文件、目录和磁盘管理
- Drive
- DriveGet
- DriveSpaceFree
- FileAppend
- FileCopy
- FileCopyDir
- FileCreateDir
- FileCreateShortcut
- FileDelete
- FileEncoding [AHK_L 42+]
- FileGetAttrib
- FileGetShortcut
- FileGetSize
- FileGetTime
- FileGetVersion
- FileInstall
- FileMove
- FileMoveDir
- FileOpen [AHK_L 42+]
- FileReadLine
- FileRead
- FileRecycle
- FileRecycleEmpty
- FileRemoveDir
- FileSelectFile
- FileSelectFolder
- FileSetAttrib
- FileSetTime
- IfExist / IfNotExist
- IniDelete
- IniRead
- IniWrite
- Loop(文件和文件夹)
- Loop(读取文件内容)
- SetWorkingDir
- SplitPath
- 流程控制
- 内置函数
- GUI、MsgBox、InputBox 及其他对话框
- 鼠标和键盘
- 鼠标和键盘
- #InstallKeybdHook
- #InstallMouseHook
- #KeyHistory
- BlockInput
- Click [v1.0.43+]
- ControlClick
- ControlSend / ControlSendRaw
- CoordMode
- GetKeyState
- KeyHistory
- KeyWait
- Input
- MouseClick
- MouseClickDrag
- MouseGetPos
- MouseMove
- Send / SendRaw / SendInput / SendPlay / SendEvent: 发送按键和点击
- SendLevel [v1.1.06+]
- SendMode [v1.0.43+]
- SetDefaultMouseSpeed
- SetKeyDelay
- SetMouseDelay
- SetCapsLockState/SetNumLockState/SetScrollLockState
- SetStoreCapslockMode
- 数学相关
- 屏幕管理
- 杂项命令
- 进程管理
- 注册表管理
- 声音命令
- 字符串管理
- 窗口管理
- 控件
- 窗口组
- #WinActivateForce
- DetectHiddenText
- DetectHiddenWindows
- SetTitleMatchMode
- SetWinDelay
- StatusBarGetText
- StatusBarWait
- WinActivate
- WinActivateBottom
- WinClose
- WinGet
- WinGetActiveStats
- WinGetActiveTitle
- WinGetClass
- WinGetPos
- WinGetText
- WinGetTitle
- WinHide
- WinKill
- WinMaximize
- WinMinimize
- WinMinimizeAll / WinMinimizeAllUndo
- WinMove
- WinRestore
- WinSet
- WinSetTitle
- WinShow
- WinWait
- WinWaitActive / WinWaitNotActive
- WinWaitClose
- #指令
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Sleep
在继续前等待指定的时间量。
Sleep, DelayInMilliseconds
参数
- Delay
要暂停的时间量 (单位为毫秒), 介于 0 和 2147483647 (24 天) 之间, 可以为 表达式.
备注
由于操作系统中计时系统的精确度, Delay 通常会被向上取整到最近的 10 或 15.6 毫秒的倍数 (取决于所安装的硬件和驱动的类型). 例如,在大部分 Windows 2000/XP 系统上介于 1 和 10(含边界)的延时都相当于 10 或 15.6。要实现更短的延时, 请参阅 示例.
如果 CPU 在负载时, 那么实际的延时可能超过请求的时间. 这是因为在给脚本另一个时间片之前, 会给每个有需要的进程一个 CPU 时间片 (一般为 20 毫秒).
延时为 0 会将脚本当前时间片的剩余部分分配给其他需要的进程 (只要它们的 优先级 不是显著比脚本低). 因此, 延时为 0 实际会产生在 0 和 20ms (或更多) 之间的延时, 取决于有需要的进程的数目 (如果没有这样的进程, 则完全没有延时). 然而, 0 的 Delay 应该比任何更长的 Delay 会更早结束.
当脚本休眠时, 可以通过 热键, 自定义菜单项 或 计时器 启动新的 线程.
Sleep -1:-1 的 delay 不会休眠,相反地它让脚本立即检查消息队列。这可用来强制任何迫近的中断在指定的位置发生,而不是在更随机的位置。请参阅 Critical 了解更多细节。
相关
SetKeyDelay, SetMouseDelay, SetControlDelay, SetWinDelay, SetBatchLines
示例
Sleep, 1000 ; 1 秒
; 下面是个可运行示例, 它演示了如何休眠比一般的 10 或 15.6 毫秒 ; 更短的时间. ; 注:像这样的脚本运行时,整个操作系统和所有的应用程序 ; 都会受到下面的 timeBeginPeriod 的影响。 SetBatchLines -1 ; 确保此方法最高的效率。 SleepDuration = 1 ; 这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别)。 TimePeriod = 3 ; 尝试 7 或 3。请参阅下面的注释. ; 在休眠持续时间一般向上取整到 15.6 ms 的个人电脑中,尝试 TimePeriod=7 来允许 ; 稍短一点的休眠,而尝试 TimePeriod=3 或更小的值来允许最小可能的休眠。 DllCall("Winmm\timeBeginPeriod", uint, TimePeriod) ; 作用于所有的应用程序,而不只是脚本的 DllCall("Sleep"...),但不影响 SetTimer。Iterations = 50 StartTime := A_TickCount Loop %Iterations% DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令。 DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常。 MsgBox % "Sleep duration = " . (A_TickCount - StartTime) / Iterations
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论