winfom实现如何载入iso文件,创建一个虚拟磁盘

qq_15544163 2020-10-12 03:14:00
需要实现类似虚拟光驱的iso文件载入功能。winfom页面中,选择或者找到某个iso文件,然后点击载入按钮。磁盘上创建一个虚拟磁盘。类似于:LZZ Virtual Drive 这个软件功能。
...全文
4672 14 点赞 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
owennol 2020-10-21
最好是第三方工具先创建好虚拟磁盘,,代码只做ISO的载入吧。。。
  • 打赏
  • 举报
回复
qq_15544163 2020-10-16
不行啊 vhd的虚拟磁盘生成出来不是我想要的效果;另外调用 OpenVirtualDisk 方法在win7上不支持打开iso文件;不行啊
  • 打赏
  • 举报
回复
wanghui0380 2020-10-14
引用
CD and DVD image files (ISO) are not supported before Windows 8 and Windows Server 2012.
从msdn文档上看,win7以上提供VHD支持,win8以上提供ISO支持
  • 打赏
  • 举报
回复
wanghui0380 2020-10-14
win7以上系统内置VirtDisk.dll ,提供了相关功能(应该内置了驱动,并使用这个api进行代理操作) https://docs.microsoft.com/zh-cn/windows/win32/api/virtdisk/nf-virtdisk-attachvirtualdisk?redirectedfrom=MSDN 使用说明 https://csharp.hotexamples.com/examples/-/ATTACH_VIRTUAL_DISK_PARAMETERS/-/php-attach_virtual_disk_parameters-class-examples.html 代码说明 80行以前是生成一个vhd 文件,这个你忽略,直接看80行以后的。 80以后是打开一个虚拟磁盘文件,然后附加到虚拟磁盘上 当然我个人没试过这代码,到底成不成就难说了(效果未知,我估计还有可能用到DefineDosDevice 这个api)
  • 打赏
  • 举报
回复
qq_15544163 2020-10-14
奥 那有没有替代的方案,或者c#调用第三方的组件。
  • 打赏
  • 举报
回复
threenewbee 2020-10-14
引用 8 楼 qq_15544163 的回复:
win7上的【Windows PowerShell】 不识别Mount-DiskImage命令。
windows 8才内置虚拟光驱功能
  • 打赏
  • 举报
回复
qq_15544163 2020-10-14
win7上的【Windows PowerShell】 不识别Mount-DiskImage命令。
  • 打赏
  • 举报
回复
qq_15544163 2020-10-14

  var  isoPath = @"D:\333.iso";
                    using (var ps = PowerShell.Create())
                    {
                        ps.AddCommand("Mount-DiskImage").AddParameter("ImagePath", isoPath).Invoke();

                       
                    }
可以通过PowerShell实现,载入iso并创建虚拟磁盘,不过win7上支持。
  • 打赏
  • 举报
回复
threenewbee 2020-10-12
可以给现有的某个虚拟光驱的程序做一个shell
  • 打赏
  • 举报
回复
wanghui0380 2020-10-12
主要是这个deviceiocontrol 参数会根据驱动的不同而不同 如果没有对方官方文档,可以通过API调用监控工具和PCI总线通讯监控工具去查看具体的API调用和通讯参数
  • 打赏
  • 举报
回复
wanghui0380 2020-10-12
具体方法,我也懒得研究,基本上都是标准的win32api和驱动程序进行通讯。(当然通讯的规则和参数就需要自己研究) 下面有人研究过另一款虚拟光驱的驱动通讯过程 https://blog.csdn.net/weixin_30740295/article/details/95431630
  • 打赏
  • 举报
回复
qq_15544163 2020-10-12
可以说的再具体点吧 不是很明白。
  • 打赏
  • 举报
回复
wanghui0380 2020-10-12
比如好压的虚拟驱动是 HaoZipVirtualCDBus.sys 也就是虚拟存储控制器驱动
  • 打赏
  • 举报
回复
wanghui0380 2020-10-12
这不是java,net玩的东西,这个需要编写驱动。 所以你需要做的事情是,先安装好压这种玩意,然后找到驱动。在研究怎么用这个驱动,然后把这个驱动打包安装
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2020-10-12 03:14
社区公告

让您成为最强悍的C#开发者