Welcome

首页 / 软件开发 / Delphi / 用Delphi实现对光驱盘盒的开关控制(三)

用Delphi实现对光驱盘盒的开关控制(三)2007-05-085)程序自动执行无效的菜单鼠标事件
procedure TForm1.mNotautorunClick(Sender: TObject);
var
Reg: TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if (Reg.OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun",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 最终弹出菜单的效果图