扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:闫海忠 杨桃萍 来源:计算机与信息技术 2007年10月31日
关键字:
function CloseCDROM(Drive:pChar):Boolean; // 关闭CDROM var Res:MciError; OpenParm:TMCI_OPEN_Parms; Flags:Dword; s:string; DeviceID:Word; begin Result:=false; s:=Drive+':'; flags:=mci_Open_Type or mci_Open_Element; With OpenParm do begin dwCallBack:=0; lpstrDeviceType:='CDAudio'; lpstrElementName:=PChar(s); end; Res:=mciSendCommand(0,mci_Open,Flags,Longint(@OpenParm)); If Res<>0 then exit; DeviceID:=OpenParm.wDeviceID ; try Res:=mciSendCommand(DeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0); If Res=0 then exit; Result:=True; finally mciSendCommand(DeviceID,mci_Close,Flags,Longint(@OpenParm)); end; end; |
procedure TForm1.mAutorunClick(Sender: TObject); var Reg: TRegistry; begin if Application.ExeName='' then // 判断应用程序文件名是否为空 begin MessageBox(Handle,'应用程序名称不可以为空。','错误',MB_OK+MB_ICONERROR); Exit; end; // 初始化AppFileName //GetMem(Application.ExeName,256); // edit1.text.GetTextBuf(AppFileName,256); Reg:=TRegistry.Create; try Reg.RootKey:=HKEY_LOCAL_MACHINE; if (Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False))=True then begin // 在注册表中添加数值 Reg.WriteString('MyStartup',Application.ExeName); end else MessageBox(Handle,'打开注册表失败。','错误',MB_OK+MB_ICONERROR); finally Reg.CloseKey; Reg.Free; end; end; |
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; |
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; |
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; |
procedure TForm1.mCloseAppClick(Sender: TObject); begin Application.terminate; //程序终止 end; |
图2 最终弹出菜单的效果图
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者