我可以用C#/ .NET以编程方式禁用窗口自动播放功能吗?

isa*_*mux 5 .net c# windows autoplay

有没有人知道使用c#/ .NET停用windows的自动播放功能的方法?

isa*_*mux 11

一个小小的总结,为所有其他寻找禁用/抑制自动播放的好方法.到目前为止,我已经找到了3种以编程方式禁用自动播放的方法:

  1. 拦截QueryCancelAutoPlay消息
  2. 使用注册表
  3. 实现COM接口IQueryCancelAutoPlay

最后我选择了第三种方法并使用了IQueryCancelAutoPlay接口,因为其他方法有一些显着的缺点:

  • 第一种方法(QueryCancelAutoPlay)只能在应用程序窗口位于前台时抑制自动播放,因为只有前台窗口才会收到消息
  • 即使应用程序窗口在后台,在注册表中配置自动播放仍然有效.缺点:它需要重新启动当前运行的explorer.exe才能生效...所以这不是临时禁用自动播放的解决方案.

实施的例子

1. QueryCancelAutoPlay

注意:如果您的应用程序使用对话框,则需要调用SetWindowLong(签名)而不是仅返回false.请看这里了解更多详情)

2.登记处

使用注册表,您可以为指定的驱动器号(NoDriveAutoRun)或一类驱动器(NoDriveTypeAutoRun)禁用AutoRun

3. IQueryCancelAutoPlay

其他一些链接: