程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用Delphi實現對光驅盤盒的開關控制(三)

用Delphi實現對光驅盤盒的開關控制(三)

編輯:Delphi

5)程序自動執行無效的菜單鼠標事件 procedure TForm1.mNotautorunClick(Sender: TObject);
var
 Reg: TRegistry;
begin
 Reg:=TRegistry.Create;
 try
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
  if (Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False))=True then
  begin
   // 在注冊表中添加數值
   Reg.DeleteValue('MyStartup');
  end
  else
   MessageBox(Handle,'打開注冊表失敗。','錯誤',MB_OK+MB_ICONERROR);
  finally
   Reg.CloseKey;
   Reg.Free;
  end;
 end;
  6)打開光驅子菜單的事件過程

procedure TForm1.MenuOpenCdrom(Sender : TObject);
 var i:integer;
 begin
 with Sender as TMenuItem do begin
  if Menuindex = mOpenCDROM.Count-1 then //判斷鼠標是否點擊”所有光驅”子菜單項
  begin
  for i := 0 to Menuindex-1 do //打開所有光驅
  begin
   // Menuindex:=i;
   Mycdrom :=pchar(mopenCdrom.Items[i].Caption);
   OpenCdrom(Mycdrom);
  end;
  end else
  begin
   Mycdrom :=pchar(mopenCdrom.Items[Menuindex].Caption);
   OpenCdrom(Mycdrom);
  end;
 end;
  7)關閉光驅子菜單事件過程

procedure TForm1.MenuCloseCdrom(Sender : TObject);
var i:integer;
begin
 with Sender as TMenuItem do begin
 if Menuindex = mCloseCDROM.Count-1 then //判斷鼠標是否點擊”所有光驅”子菜單項
 begin
 for i := 0 to Menuindex-1 do // //關閉所有光驅
 begin
  Mycdrom :=pchar(mCloseCdrom.Items[i].Caption);
  CloseCdrom(Mycdrom);
 end;
 end else
  Mycdrom :=pchar(mCloseCdrom.Items[Menuindex].Caption);
  CloseCdrom(Mycdrom);
 end;
end;
  8)關閉控制程序子菜單事件過程:

procedure TForm1.mCloseAppClick(Sender: TObject);
begin
 Application.terminate; //程序終止
end;
  通過上述的函數和過程實現了對光驅的控制,運行以下該程序,用鼠標右鍵點擊所見窗口,彈出圖2菜單效果,選擇所要控制開關的光驅盤號,顯然光驅盒開始聽任程序的擺布。該程序可以進一步改造後將其窗體隱去,放入狀態欄中,實現程序托盤功能等,由於限於篇幅,將此部分省去。

  本程序Windows 2000操作系統+ Delphi 5.0 實現和調試通過。



圖2 最終彈出菜單的效果圖

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved