我要实现一个功能就是让系统(win2000)注销,然后再自动的login
(注销前记录下当前login用户的ID 和PSW,做为自动login的ID 和PSW)各位大侠指教
               ----------狂奔的奶牛

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        btnOK: TButton;
        RadioButton1: TRadioButton;
        RadioButton2: TRadioButton;
        RadioButton3: TRadioButton;
        procedure FormCreate(Sender: TObject);
        procedure btnOKClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      hToken : THandle;
      Tkp : TTokenPrivileges;
      Zero:DWORD;
    begin
      OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
      LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
      Tkp.PrivilegeCount :=1;
      Tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      AdjustTokenPrivileges(hToken,False,Tkp,SizeOf(TTokenPrivileges),nil,Zero);
    end;procedure TForm1.btnOKClick(Sender: TObject);
    begin
        if self.RadioButton1.Checked then
        begin
            ExitWindowsEx(EWX_LOGOFF,0);
        end;
        if self.RadioButton2.Checked then
        begin
            ExitWindowsEx(EWX_REBOOT,0);
        end;
        if self.RadioButton3.Checked then
        begin
            ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0);
        end;
    end;end.
      

  2.   

    仅仅注销用:
    procedure TForm1.FormCreate(Sender: TObject);
    var
      hToken : THandle;
      Tkp : TTokenPrivileges;
      Zero:DWORD;
    begin
      OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
      LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
      Tkp.PrivilegeCount :=1;
      Tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      AdjustTokenPrivileges(hToken,False,Tkp,SizeOf(TTokenPrivileges),nil,Zero);
    end;procedure TForm1.btnOKClick(Sender: TObject);
    begin
      ExitWindowsEx(EWX_LOGOFF,0);
    end;
      

  3.   

    通过GINA HOOK,监控WInLogon就能实现找Google吧_____________________
    http://lysoft.7u7.net
      

  4.   

    我从来没有接触过DELPHI
    但是工作需要
    时间紧没有办法系统的去学,
    恳请大家帮助
      

  5.   

    自动登陆!那就是使用默认的用户和密码登陆吧!你用一个键响应事件,把用户名和密码保存到注册表或*.ini文件或其他什么文件,运行系统时就读取注册表或相关文件就可以了!
    如果注册表里没有相关的信息就用新用户的登陆模式了!