首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 用PB实现Windows2000下的自动关机
【标  题】:用PB实现Windows2000下的自动关机
【关键字】:Windows,in,Win,自动关机,20,关机,2000,Window,Windows2000,PB,s2,do,200,Wi,PB,Windows2000
【来  源】:网络

用PB实现Windows2000下的自动关机

    在Windows2000中关机与在Windows98中不一样,需要首先获得权限,然后调用关机API函数,才能关机。以下是具体的步骤:

第一步: 声明结构
-----------------------------------------------------------------------

需要声明三个结:LUID, LUID_AND_ATTRIBUTES, token_privileges

LUID

long  lowpart
long  highpart




LUID_AND_ATTRIBUTES

luid  pLuid
long  Attributes




token_privileges

long  privilegecount
luid_and_attributes  privileges[]



第二步: 声明外部扩展函数
-----------------------------------------------------------------------

FUNCTION ulong ExitWindowsEx(ulong uFlags,ulong dwReserved) LIBRARY "user32.dll"
FUNCTION ulong GetCurrentProcess() LIBRARY "kernel32.dll"
FUNCTION ulong LookupPrivilegeValue(ref string lpSystemName,ref string lpName,ref Luid lpLuid) LIBRARY "advapi32.dll" ALIAS FOR "LookupPrivilegeValueA"
FUNCTION ulong AdjustTokenPrivileges(ulong TokenHandle,boolean DisableAllPrivileges,ref TOKEN_PRIVILEGES NewState,ulong BufferLength,ref TOKEN_PRIVILEGES PreviousState,ref ulong ReturnLength) LIBRARY "advapi32.dll"
FUNCTION ulong OpenProcessToken(ulong ProcessHandle,ulong DesiredAccess,ref ulong TokenHandle) LIBRARY "advapi32.dll"



第三步: 程序脚本

-----------------------------------------------------------------------

/*获得关机权限*/

string ls_lpSystemName,ls_lpName
ls_lpname='SeShutdownPrivilege'
ulong  lu_hdlProcessHandle,lu_hdlTokenHandle,lu_lBufferNeeded
luid lst_tmpLuid
TOKEN_PRIVILEGES lst_tkp
TOKEN_PRIVILEGES lst_tkpNewButIgnored
lu_hdlProcessHandle = GetCurrentProcess()
OpenProcessToken(lu_hdlProcessHandle,40, lu_hdlTokenHandle)
LookupPrivilegeValue( ls_lpSystemName, ls_lpname, lst_tmpLuid)
lst_tkp.PrivilegeCount = 1
lst_tkp.Privileges[1].pLuid = lst_tmpLuid
lst_tkp.Privileges[1].Attributes = 2
AdjustTokenPrivileges(lu_hdlTokenHandle, False, lst_tkp,16, lst_tkpNewButIgnored,lu_lBufferNeeded)


/*关机*/

ExitWindowsEx (9,0)


/* The End */

如果您在这篇文章里得到了些什么,请给作者一些鼓励:zaodt_ms@hotmail.com
PB打印机选择列表的分析与实现:【上一篇】
从Web站点读取Flash动画演播的PB6.5编程:【下一篇】
【相关文章】
  • PB打印机选择列表的分析与实现
  • 在PB中如何使用Microsoft Outlook发送邮件
  • 如何在PB中制作特殊形状数据窗口或按钮
  • PB下动态SQL语句的应用
  • 用PB生成GUID(全球唯一码)解决主键重复
  • 在PB中调用外部函数
  • PB中实现可监控的数据备份
  • 在PB中快速实现数据库树形结构
  • 利用PB实现动态系统用户登录
  • 在PB中用代码配置ODBC
  • 【随机文章】
  • Socket网络编程学习笔记(4):TCP消息边界处理
  • 交互返回类型的比较
  • Windows XP系统优化加速攻略
  • 国家代号与区号[资料]
  • 在Linux中用三款工具轻松制作网页
  • 项目管理的艺术
  • Fireworks MX 2004特效字系列教程——晶莹文字制作
  • 间谍软件Top10排行榜
  • 祝福送给大家!
  • 用排序串字段实现树状结构(例程——连接字串)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.