想要在某个时间之前开机,程序能够
 1,自动关机,
 2,或者可以锁定键盘,鼠标,
 3,或者可以禁止打开IE,
请各位大侠给小弟一点提示。先行谢过!

解决方案 »

  1.   

    1. ExitWindowsEx (EWX_SHUTDOWN,0);
    2.EnableWindow(GetDesktopWindow(),false);
      

  2.   

    ExitWindowsEx (EWX_SHUTDOWN,0);
      

  3.   

    自动关机,可以通过定时器来设置时间关机关机:ExitWindowsEx
    另外看看这个SystemParamInfo没有记清,不知是否确切
      

  4.   

    关闭Windows 控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数
    首先定义常数
    const
    EWX_FORCE=4; file://关闭所有程序并以其他用户身份登录
    EWX_LOGOFF=0; file://重新启动计算机并切换到MS-DOS方式
    EWX_REBOOT=2; file://重新启动计算机
    EWX_SHUTDOWN=1;//关闭计算机
    运行时给How赋值,让他等于EWX_SHUTDOWN或其他,调用以下语句
    ExitWindowsEx(How,0);
      

  5.   

    一、关闭系统对于某些特殊的应用程序,可能需要进行关闭系统的操作,可以调用函数ExitWindows 或者ExitWindowsEx 来实现。在Delphi中函数ExitWindows 的语法如下:function ExitWindows(dwReserved: Cardinal; Code: Word): LongBool;如果调用该函数成功,则返回True,否则返回False ;成功调用该函数将执行“关闭所有程序并以其他身份登录(Windows 95)”或“注销(Windows 98)”操作。其中的参数dwReserved和参数Code都必须是0 。例如,要实现注销操作,只需要在适当的位置写入如下语句:ExitWindows(0, 0);执行关闭计算机或重新启动计算机的操作,可以通过调用函数ExitWindowsEx 来实现。在Delphi中函数ExitWindowsEx 的语法如下:function ExitWindowsEx(uFlags, dwReserved: Cardinal): LongBool;如果调用该函数成功,则返回True,否则返回False ;其中的参数uFlags的不同将决定执行不同的关闭操作:EWX_FORCE 强制终止所有的进程。如果设置了此参数,Windows 将不会向正在运行的应用程序发送消息WM_QUERYENDSESSION和WM_ENDSESSION ,这将可能导致数据丢失。因此,除非特别紧急或特别的情况(如应用程序死锁或系统资源濒临崩溃等),不要使用该参数。EWX_LOGOFF 关闭所有与当前调用函数ExitWindowsEx 相关的进程并注销用户。EWX_POWEROFF关闭系统并关闭电源。其中,关闭电源要求系统应支持power-off 特性。EWX_REBOOT 关闭系统并重新启动计算机。EWX_SHUTDOWN在安全关闭电源后关闭系统。该操作将所有的缓存刷新到磁盘并停止所有正在运行的进程。参数dwReserved被函数所忽略,可以是任意值。
      

  6.   

    例如,要强制注销,可以通过如下语句实现:ExitWindowsEx(EWX_FORCE, 0);再如,要重新启动计算机,可以通过如下语句实现:ExitWindowsEx(EWX_REBOOT, 0);需要提醒大家注意的是,在很多情况下,只有参数EWX_SHUTDOWN能够成功关闭计算机电源。
      

  7.   

    这些只在win9x上有用,2k和XP好象要先取得权限
      

  8.   

    www.billowsoft.net/download/freecode/power.zip
      

  9.   

    猛料上的一段代码:procedure TForm1.AdjustToken();
    var
      hdlProcessHandle : Cardinal;
      hdlTokenHandle : Cardinal;
      tmpLuid : Int64;
      tkpPrivilegeCount : Int64;
      tkp : TOKEN_PRIVILEGES;
      tkpNewButIgnored : TOKEN_PRIVILEGES;
      lBufferNeeded : Cardinal;
      Privilege : array[0..0] of _LUID_AND_ATTRIBUTES;
    begin
            hdlProcessHandle := GetCurrentProcess;
            OpenProcessToken(hdlProcessHandle,
                            (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY),
                              hdlTokenHandle);        // Get the LUID for shutdown privilege.
            LookupPrivilegeValue('', 'SeShutdownPrivilege', tmpLuid);
            Privilege[0].Luid := tmpLuid;
            Privil
    ege[0].Attributes := SE_PRIVILEGE_ENABLED;
            tkp.PrivilegeCount := 1;  // One privilege to set
            tkp.Privileges[0] := Privilege[0];
            // Enable the shutdown privilege in the access token of this
            // process.
            AdjustTokenPrivileges(hdlTokenHandle,
                                  False,
                                  tkp,
                                  Sizeof(tkpNewButIgnored),
                                  tkpNewButIgnored,
                                  lBufferNeeded);end;
    ******************
    在Windows2000下关闭计算机
    function ShutDownSystem():BOOL;
    var
      hProcess,hAccessToken:THandle;
      LUID_AND_ATTRIBUTES:TLUIDAndAttributes;
      TOKEN_PRIVILEGES: TTokenPrivileges;
      BufferIsNull:DWORD;
    Const
      SE_SHUTDOWN_NAME='SeShutdownPrivilege';
    begin
      hProcess:=GetCurrentProcess();OpenProcessToken(hprocess,TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY,hAccessToken);
      LookupPrivilegeValue(Nil,SE_SHUTDOWN_NAME,LUID_AND_ATTRIBUTES.Luid);
      LUID_AND_ATTRIBUTES.Attributes:=SE_PRIVILEGE_ENABLED;
      TOKEN_PRIVILEGES.PrivilegeCount:=1;
      TOKEN_PRIVILEGES.Privileges[0]:=LUID_AND_ATTRIBUTES;
      BufferIsNull:=0;AdjustTokenPrivileges(hAccessToken,False,TOKEN_PRIVILEGES,sizeof(TOKEN_PRIVI
    LEGES),Nil,BufferIsNull);
      ExitWindowsEx(EWX_REBOOT, 0);
    ShutDownSystem:=True;
    end;
      

  10.   

    在WIN98 下BOOL ExitWindowsEx( UINT uFlags, DWORD dwReserved );
    EWX_LOGOFF     //注销
    EWX_REBOOT      //重启
    EWX_SHUTDOWN   //关闭
    在2000下关机要设置权限。
    在98下蔽键盘鼠标。。使用SystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam,  UINT fWinIni );
    2000下要如果要屏蔽系统键要使用钩子函数。禁止IE 修改注册表;