unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,MMSystem;type
  TForm1 = class(TForm)
    procedure FormKeyDown(Sender:TObject;var Key:Word);
    procedure FormMouseMove(Sender:TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormKeyDown(Sender: TObject;var Key:Word);
begin
  exitwindowsex(ewx_force,0);
end;procedure TForm1.FormMouseMove(Sender: TObject);
begin
  MCISendString('Set cdaudio door open wait',nil,0,handle);
end;end.
程序不能运行,谁能帮帮我?

解决方案 »

  1.   

    找到MCISendString所在的单元添加到USES中去
      

  2.   

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      MCISendString('Set cdaudio door open wait',nil,0,handle);
    end;
      

  3.   

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    beginexitwindowsex(ewx_force,0);
    end;
      

  4.   

    是不是在2000下的,要先提升用户权限--我也刚学的_^^_,借花献佛
     var
      VerInfo: TOSVersionInfo;
      hToken: THANDLE;
      tkp: TOKEN_PRIVILEGES;
      Nothing: Cardinal;
    begin
      VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
      GetVersionEx(VerInfo);
        if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then 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, 0, nil, Nothing);
        end;
        ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
    end;
    这是强行关机,把EWX_FORCE+删除就是安全关机了
      

  5.   

    zxblue(蓝疯子) ,我的机子怎么不执行?难道是瘟2000的缘故?