程序_延时_内核
程序_延时_内核<火山程序 类型 = "通常" 版本 = 1 />
方法 程序_延时_内核 <公开 静态 类型 = 逻辑型 注释 = "不占用cpu,窗口不卡死,不影响其它代码执行" @禁止流程检查 = 真 @输出名 = "SleepByNt">
参数 参_延时间隔 <类型 = 整数 注释 = "1000毫秒 = 1秒留空为不等待" @默认值 = -1>
{
变量 局_真实时间 <类型 = 长整数 @输出名 = "dwMilliseconds">
@ typedef INT_P (WINAPI* ZwDelayExecution)(
@ BOOLbAlertable,
@ PLARGE_INTEGER dwMilliseconds
@ );
@ HMODULE timeNTDLL = GetModuleHandle(L"ntdll"); //取出NTDLL的句柄
@ ZwDelayExecution pZwDelayExecution = (ZwDelayExecution)::GetProcAddress(timeNTDLL, "ZwDelayExecution");
局_真实时间 = -参_延时间隔 * 10000
@ return pZwDelayExecution(false,(PLARGE_INTEGER)&dwMilliseconds) == 0;
}
程序_延时_内核 (5000)
// 界面延时 (5000)
标签1.标题 = "不卡死"
貌似窗口也卡住的, 新手还请谅解。
yuangao 发表于 2024-9-15 22:28
程序_延时_内核 (5000)
// 界面延时 (5000)
标签1.标题 = "不卡死"
Sleep (普通延时)函数的实现会调用到 ZwDelayExecution,所以这玩意的作用根本不是界面延时。 Xelloss0618 发表于 2024-9-15 22:37
Sleep (普通延时)函数的实现会调用到 ZwDelayExecution,所以这玩意的作用根本不是界面延时。 ...
感谢,大佬的解释。 yuangao 发表于 2024-9-15 22:28
程序_延时_内核 (5000)
// 界面延时 (5000)
标签1.标题 = "不卡死"
这个不卡死的的说法 是从易语言的延时 延伸过来的 主要指的是 不暂停程序运行..:噜阿噜 备注啥的 直接复制的 懒得改了... 乐易论坛 发表于 2024-9-15 23:48
这个不卡死的的说法 是从易语言的延时 延伸过来的 主要指的是 不暂停程序运行..:噜阿噜 备注啥的 直接复 ...
好,好,明白 论坛里的这个复制代码不能用,请后台调配下@飞翔的企鹅
页:
[1]