网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 数据库类-> PowerBuilder-> 用PB实现Windows2000下的自动关机

用PB实现Windows2000下的自动关机
作者:佚名 来源:InterNet 加入时间:2005-1-31
相关文章
  • 电脑不能正常关机的原因
  • 如何笔记本电脑不能正常关机问题
  • WindowsXP不能正常关机的解决方法
  • WindowsXP不能正常关机之解释
  • 详解定时开关机
  • WinXP极速关机
  • Windows 2000系统中的关机技巧
  • 关闭WIN2003关机事件跟踪程序
  • 用好Windows 2000的关机与休眠功能
  • 浅析Window 2000系统中的关机技巧
  • 相关书籍:
    在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 */

    [文章录入员:nancy]

    相关文章
  • 电脑不能正常关机的原因
  • 如何笔记本电脑不能正常关机问题
  • WindowsXP不能正常关机的解决方法
  • WindowsXP不能正常关机之解释
  • 详解定时开关机
  • WinXP极速关机
  • Windows 2000系统中的关机技巧
  • 关闭WIN2003关机事件跟踪程序
  • 用好Windows 2000的关机与休眠功能
  • 浅析Window 2000系统中的关机技巧
  • 相关书籍:
    本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    PowerBuilder
    ACCESS
    MS SQL
    MySQL
    Oracle
    Foxpro
    PowerBuilder
    Sybase
    其它
    电脑教程阅读排行
    ·浅析PowerBuilder下动...
    ·PowerBuilder连接Sy...
    ·用Powerbuilder开发W...
    ·在powerbuilder中向E...
    ·PB通过OLEObject使用W...
    ·PB中读取地磅BCD解码
    ·在PowerBuilder中操作...
    ·PB动态报表格式自由定义的实现
    ·PB开发Sybase数据库应用技...
    ·如何在PB中制作特殊形状数据窗口...