易语言教学代码_超级延时

.版本 2
.子程序 超级延时, , 公开, 高精度延时,cpu占用低,窗口不卡死,一次最大可延时几年 (无返回值)
.参数 延时间隔, 整数型, , 1000微秒 = 1毫秒 ; 1000毫秒 = 1秒
.参数 延时单位, 整数型, 可空, 可空:毫秒  0 毫秒  1 微秒  2 秒  3 分  4 小时  5 天
.局部变量 hTimer, 整数型
.局部变量 int64, LARGE_INTEGER
.局部变量 计次, 整数型
.判断开始 (延时单位 = 1)
    int64.QuadPart = -10 × 延时间隔
    hTimer = CreateWaitableTimerA (0, 假, 0)
    SetWaitableTimer (hTimer, int64, 0, 0, 0, 假)
    .判断循环首 (MsgWaitForMultipleObjects (1, hTimer, 假, #INFINITE, #QS_ALLINPUT) ≠ #WAIT_OBJECT_0)
        处理事件 ()
    .判断循环尾 ()
    _关闭对象 (hTimer)
    返回 ()
.判断 (延时单位 = 0)
    延时单位 = 1
.判断 (延时单位 = 2)
    延时单位 = 1000
.判断 (延时单位 = 3)
    延时单位 = 1000 × 60
.判断 (延时单位 = 4)
    延时单位 = 1000 × 60 × 60
.判断 (延时单位 = 5)
    延时单位 = 1000 × 60 × 60 × 24
.默认
.判断结束
int64.QuadPart = -10 × 延时间隔 × 1000 × 延时单位
hTimer = CreateWaitableTimerA (0, 假, 0)
SetWaitableTimer (hTimer, int64, 0, 0, 0, 假)
.判断循环首 (MsgWaitForMultipleObjects (1, hTimer, 假, #INFINITE, #QS_ALLINPUT) ≠ #WAIT_OBJECT_0)
    处理事件 ()
.判断循环尾 ()
_关闭对象 (hTimer)

超级延时2

.版本 2

.子程序 超级延时, , , 高精度延时,cpu占用低,窗口不卡死
.参数 延时间隔, 小数型
.局部变量 hTimer, 整数型
.局部变量 int64, 长整数型
.局部变量 计次, 整数型

int64 = -10 × 延时间隔 × 1000 × 1000
hTimer = CreateWaitableTimerA (0, 假, 0)
SetWaitableTimer (hTimer, int64, 0, 0, 0, 假)
.判断循环首 (MsgWaitForMultipleObjects (1, hTimer, 假, -1, 255) ≠ 0)
    处理事件 ()
.判断循环尾 ()
CloseHandle (hTimer)

DLL

.版本 2

.DLL命令 CreateWaitableTimerA, 整数型, , , 公开, 创建一个可等待的计时器对象。
    .参数 lpSemaphoreAttributes, 整数型, , SECURITY_ATTRIBUTES,指定一个结构,用于设置对象的安全特性。如将参数声明为ByVal As Long,并传递零值,就可使用对象的默认安全设置。
    .参数 bManualReset, 逻辑型, , Long,如果为TRUE,表示创建一个人工重置计时器;如果为FALSE,则创建一个自动重置计时器。
    .参数 lpName, 整数型, , String,指定可等待计时器对象的名称。用vbNullString可创建一个未命名的计时器对象。如果已经存在拥有这个名字的一个可等待计时器,就直接打开现成的可等待计时器。这个名字可能不与一个现有的互斥体、事件、信号机或文件映射的名称相符。

.DLL命令 SetWaitableTimer, , , , , 启动一个可等待计时器。
    .参数 hTimer, 整数型, , 用于指明你要设置的定时器。
    .参数 pDueTime, 长整数型, 传址, 指明定时器何时应该第一次报时
    .参数 lPeriod, 整数型, , 指明此后定时器应该间隔多长时间报时一次.
    .参数 pfnCompletionRoutine, 整数型
    .参数 lpArgToCompletionRoutine, 整数型
    .参数 fResume, 逻辑型

.DLL命令 MsgWaitForMultipleObjects, 整数型, , "MsgWaitForMultipleObjects", , 该函数等待内核对象或消息。
    .参数 nCount, 整数型, , 指定列表中的句柄数量
    .参数 pHandles, 整数型, 传址, 指定对象句柄组合中的第一个元素
    .参数 fWaitAll, 逻辑型, , 如果为TRUE,表示除非对象同时发出信号,否则就等待下去。如果为FALSE,表示任何对象发出信号即可。
    .参数 dwMilliseconds, 整数型, , 指定要等待的毫秒数。
    .参数 dwWakeMask, 整数型, , 带有前缀的一个或多个常数,用于标识特定的消息类型。

.DLL命令 CloseHandle, 逻辑型, "kernel32 ", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
    .参数 HANDLE, 整数型

.DLL命令 FindWindowExA, 整数型, "user32.dll", , , 该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。
    .参数 hwndParent, 整数型, , 要查找的子窗口所在的父窗口的句柄(如果设置了hwndParent,则表示从这个hwndParent指向的父窗口中搜索子窗口)。如果hwndParent为 0 ,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。
    .参数 hwndChildAfter, 整数型, , 子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndParent窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
    .参数 lpszClass, 文本型, , 指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。
    .参数 lpszWindow, 文本型, , 指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。

.DLL命令 GetWindowRect, 逻辑型, , , , 该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
    .参数 hWnd, 整数型
    .参数 lpRect, RECT, 传址

.DLL命令 MoveWindow, , , , , 功能是改变指定窗口的位置和大小。。
    .参数 hWnd, 整数型, , 指定了窗口的句柄
    .参数 x, 整数型, , 指定了CWnd的左边的新位置。
    .参数 y, 整数型, , 指定了CWnd的顶部的新位置。
    .参数 nWidth, 整数型, , 指定了CWnd的新宽度。
    .参数 nHeight, 整数型, , 指定了CWnd的新高度。
    .参数 bRepaint, 逻辑型, , 指定了是否要重画CWnd

.DLL命令 SetWindowPos, , "user32.dll", "SetWindowPos", 公开, _窗口置最前
    .参数 hwnd, 整数型, , 欲定位的窗口
    .参数 hWndInsertAfter, 整数型, , 用于标识在z-顺序的此 CWnd 对象之前的 CWnd 对象。如果uFlags参数中设置了SWP_NOZORDER标记则本参数将被忽略。
    .参数 x, 整数型, , 窗口新的x坐标。如hwnd是一个子窗口,则x用父窗口的客户区坐标表示
    .参数 y, 整数型, , 窗口新的y坐标。如hwnd是一个子窗口,则y用父窗口的客户区坐标表示
    .参数 cx, 整数型, , 指定新的窗口宽度
    .参数 cy, 整数型, , 指定新的窗口高度
    .参数 wFlags, 整数型, , 窗口尺寸和定位的标志。该参数可以是下列值的组合:

.DLL命令 SetDllPathA, , "\attachment\DmReg.dll", "SetDllPathA", , 大漠注册函数
    .参数 path, 文本型
    .参数 mode, 整数型

.DLL命令 PostMessageA, , , "PostMessageA", 公开, 投递消息
    .参数 hwnd, 整数型
    .参数 消息号, 整数型
    .参数 消息参数1, 整数型
    .参数 消息参数2, 整数型

.DLL命令 CloseWindow, 整数型, "user32.dll", "CloseWindow", 公开, 窗口_最小化, 非0表示成功,0表示失败
    .参数 hwnd, 整数型, , hwnd,欲最小化窗口的窗口句柄

 

赞 (0)