易语言API定时关机源码
系统结构:保存设置函数,读取设置函数,关机计时函数,获取进程关机权限,高级延时,ExitWindowsEx,CloseHandle,GetCurrentProcess,OpenProcessToken,LookupPrivilegeValue,AdjustTokenPrivileges,CreateThread,TerminateThread,GetExitCodeThread,CreateWaitableTimerA,SetWaitableTimer,MsgWaitForMultipleObjects,
======窗口程序集_启动窗口
| |
| |------ __启动窗口_创建完毕
| |
| |------ __启动窗口_可否被关闭
| |
| |------ 保存设置函数
| |
| |------ 读取设置函数
| |
| |------ _按钮_开始_被单击
| |
| |------ _按钮_取消_被单击
| |
| |------ 关机计时函数
| |
| |------ 获取进程关机权限
| |
| |------ 高级延时
| |
| |
======调用的Dll
| |
| |---[dll]------ ExitWindowsEx
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ GetCurrentProcess
| |
| |---[dll]------ OpenProcessToken
| |
| |---[dll]------ LookupPrivilegeValue
| |
| |---[dll]------ AdjustTokenPrivileges
| |
| |---[dll]------ CreateThread
| |
| |---[dll]------ TerminateThread
| |
| |---[dll]------ GetExitCodeThread
| |
| |---[dll]------ CreateWaitableTimerA
| |
| |---[dll]------ SetWaitableTimer
| |
| |---[dll]------ MsgWaitForMultipleObjects
调用的DLL命令:
.DLL命令 ExitWindowsEx, 整数型, "User32.dll", "ExitWindowsEx", , 如果这个函数成功,返回值为非零。如果失败,返回值是0。
.参数 uFlags, 整数型, , 关机类型
.参数 dwReserved, 整数型, , 关机原因
.DLL命令 CloseHandle, 整数型, "Kernel32.dll", "CloseHandle"
.参数 hObject, 整数型, , 对象句柄
.DLL命令 GetCurrentProcess, 整数型, "Kernel32.dll", "GetCurrentProcess", , 获取当前进程的伪句柄,该句柄不需要关闭。
.DLL命令 OpenProcessToken, 整数型, "Advapi32.dll", "OpenProcessToken", , 如果这个函数成功,返回值为非零。如果失败,返回值是0。
.参数 hProcessHandle, 整数型
.参数 dwDesiredAccess, 整数型
.参数 lpTokenHandle, 整数型, 传址
.DLL命令 LookupPrivilegeValue, 整数型, "Advapi32.dll", "LookupPrivilegeValueA", , 如果这个函数成功,返回值为非零。如果失败,返回值是0。
.参数 lpSystemName, 整数型
.参数 lpName, 文本型, 传址
.参数 lpLuid, LUID, 传址
.DLL命令 AdjustTokenPrivileges, 整数型, "Advapi32.dll", "AdjustTokenPrivileges", , 如果这个函数成功,返回值为非零。如果失败,返回值是0。
.参数 TokenHandle, 整数型
.参数 DisableAllPrivileges, 逻辑型
.参数 lpNewState, TOKEN_PRIVILEGES
.参数 BufferLength, 整数型
.参数 PreviousState, 整数型
.参数 ReturnLength, 整数型
.DLL命令 CreateThread, 整数型, "kernel32.dll", "CreateThread", , 创建一条线程执行指定子程序,成功则返回新线程句柄,失败返回0(当此句柄不再被使用后应该使用CloseHandle()函数关闭句柄)。
.参数 lpThreadAttributes, 整数型, , 使用默认的security属性则提供:0
.参数 dwStackSize, 整数型, , 堆栈大小,如果提供“0”则使用与主线程相同的堆栈大小,并且系统会根据需要而自动扩展大小。
.参数 lpStartAddress, 子程序指针, , 被执行的子程序地址指针
.参数 lpParameter, 整数型, , 传递给被执行子程序的参数,如果没有参数则提供0。
.参数 dwCreationFlags, 整数型, , 线程标志,0=立即运行,4=暂停线程,暂停状态的线程可以使用ResumeThread()函数恢复运行。
.参数 lpThreadId, 整数型, 传址, 提供整数型变量,保存创建成功时的线程ID(在系统范围内是唯一的)。提供0,则不返回线程ID。
.DLL命令 TerminateThread, 整数型, "kernel32.dll", "TerminateThread", , 终止一个线程,返回非零值表示成功,返回零表示失败。
.参数 hThread, 整数型, , 将被终止的线程句柄,必须对此线程拥有相应的访问权限。
.参数 dwExitCode, 整数型, , 设置线程的退出代码(返回值)。注:使用GetExitCodeThread()函数获取线程的退出代码。
.DLL命令 GetExitCodeThread, 整数型, "kernel32.dll", "GetExitCodeThread", , 获取指定线程的终止状态,返回非零值表示成功,零表示失败。
.参数 hThread, 整数型, , 获取退出代码的线程句柄,必须对此线程拥有相应的访问权限。
.参数 lpExitCode, 整数型, 传址, 提供整数型变量,保存线程退出代码(返回值),如果线程还在运行中,则返回常数:#STILL_ACTIVE (259)。
.DLL命令 CreateWaitableTimerA, 整数型, "Kernel32.dll", "CreateWaitableTimerA", , 创建或打开一个可等待的定时器对象,如果成功则返回定时器对象句柄,失败返回零。
.参数 lpTimerAttributes, 整数型, , 提供零则使用默认的security属性
.参数 bManualReset, 整数型, , 如果此参数为true,定时器是一个手动复位通知计时器。否则,该定时器是一个同步定时器。
.参数 lpTimerName, 整数型, , 该定时器对象的名称。字符长度不能大于max_path,并且名称是区分大小写的,为0则表示没有名字。
.DLL命令 SetWaitableTimer, 整数型, "Kernel32.dll", "SetWaitableTimer", , 激活指定的可等待定时,设置成功返回非零值,失败返回零。
.参数 hTimer, 整数型, , 定时器对象句柄
.参数 pDueTime, 长整数型, 传址, 发信时间(文件时间结构FILETIME),正值表示绝对时间,负值表示相对时间,精度取决于硬件能力。
.参数 lPeriod, 整数型, , 定时器周期数,必须大于或等于零,如果为零则表示这个定时器是一次性的。
.参数 pfnCompletionRoutine, 整数型, , 可选的同步完成端口句柄,请参考相关文档。
.参数 lpArgToCompletionRoutine, 整数型, , 传递给完成端口回调函数的自定义数据。
.参数 fResume, 整数型, , 定时器是否自动重设。
.DLL命令 MsgWaitForMultipleObjects, 整数型, "user32.dll", "MsgWaitForMultipleObjects", , 等待一个或多个对象发送信号,返回导致函数返回的原因,-1表示等待失败。
.参数 nCount, 整数型, , 对象数量
.参数 pHandles, 整数型, 传址, 对象句柄(可以是多种对象,例如:线程,定时器等。),如果需要等待多个对象,此参数使用数组类型
.参数 bWaitAll, 整数型, , 是否等待全部,如果为真,则需要等待的对象数组全部为有信号后才返回,否则任何一个对象有信号都会返回。
.参数 dwMilliseconds, 整数型, , 超时间隔,单位为毫秒。-1则一直等待直到满足条件,0则立即返回,大于0则表示等待指定时间
.参数 dwWakeMask, 整数型, , 等待的消息类型,例如:#QS_ALLINPUT 表示收到任何消息都立即返回,参考常量:#QS_***。
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。