首页 >> 读书频道 >> 电脑 >> 用PB实现Windows2000下的自动关机
 
· JSP页面是如何工作的?
· 在powerbuilde
· PB中实现可监控的数据备
· 在PB中如何使用Micr
· 基本语法介绍
· 在PowerBuilde
· 如何在ASP中使用myS
· 在PB中应用灵活多样的排
· 数据库查询处理器的特性
· Mysql 如何实现To
· 如何用pb实现MSACC
· 如何在程序启动默认浏览器
 
· 拉封丹寓言
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

用PB实现Windows2000下的自动关机


查看有无更新版本

关键字:PowerBuilder 2006-9-21

 

在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 */

用PB实现Windows2000下的自动关机

[ 1 ]
用PB实现Windows2000下的自动关机 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑