2024年4月2日发(作者:)

如何禁止光驱弹出

光驱只要是正常的,按下光驱按钮都能弹出,除非光驱坏了才会不弹出。

如果要禁止系统弹出光驱,一个方法是在设备管理器里把驱动禁用,要使用的时

候再启用

如何禁用光驱弹出?

问题补充:

如何禁止光驱"弹出"?

让光驱可以正常读取,但不能弹出

其他回答

共2条

2009-11-7 20:34 1131438680 | 一级

点击关闭光驱就可以了

0

2009-11-8 03:47 b877025685 | 二级

把DVD从硬件里禁止或是删掉。

我的电脑-属性-硬件-设备管理器-找到光驱-停用.

1、 我想禁止光驱的弹出,无论是按弹出按纽还是别的程序发出弹出命令,光驱门都不会打

开,但是光驱的读写功能不变。

2、如果要用全局钩子,该钩什么类型的消息呢?

调用的动态连接库吧,

能否知道动态连接库的控制光驱的函数,然后重载它

先使用CreateFile()获得光驱的HANDLE

然后HOOK函数DeviceIoControl(),只要是第一个参数为该HANDLE的都拒绝执行

谢谢两位。昨天晚上19:57分时已经找到方法。jiangfb(干是一种美德) 的方法与我的实

现方法相同,我已经验证,可行。代码如下:

......

HANDLE hODD;

hODD = CreateFile( ".Cdrom0 ", // drive to open

GENERIC_READ, // no

access to the drive

FILE_SHARE_READ | // share

mode

FILE_SHARE_WRITE,

NULL, // def

ault security attributes

OPEN_EXISTING, // disposit

ion

0, // file attributes

NULL);

if(hODD==INVALID_HANDLE_VALUE)

{

::AfxMessageBox( "Create Handle Failed! ");

}

PREVENT_MEDIA_REMOVAL *lpInBuffer= new (PREVENT_MEDIA_REMOVAL);

lpInBuffer-> PreventMediaRemoval=TRUE;

DWORD nInBufferSize=sizeof(PREVENT_MEDIA_REMOVAL);

DWORD dwBytesReturned;

BOOL bResult;

bResult = DeviceIoControl(hODD, // device to be queried

IOCTL_STORAGE_MEDIA_REMOVAL, // op

eration to perform

(LPVOID) lpInBuffer,

nInBufferSize,

NULL, 0,

&dwBytesReturned,

(LPOVERLAPPED) NULL); // sy