
public voID setVolCDROM(){ Selectquery queryCDROM = new Selectquery("SELECT * FROM Win32_cdromdrive"); ManagementObjectSearcher searcherCDROM = new ManagementObjectSearcher(queryCDROM); foreach(ManagementObject cdromLetter in searcherCDROM.Get()) { MessageBox.Show(cdromLetter["Drive"].ToString() + "\n" + cdromLetter["Manufacturer"].ToString()); if (cdromLetter["Drive"].ToString() == "D:") { cdromLetter["Drive"] = "Z:"; cdromLetter.Put(); } }}解决方法 我不知道WMI,但是你可以用winAPI更改驱动器号,这是我将一个 example(只需要你需要的部分)移植到C# [Dllimport("kernel32.dll",SetLastError = true)]static extern bool GetVolumenameForVolumeMountPoint(string lpszVolumeMountPoint,[Out] StringBuilder lpszVolumename,uint cchBufferLength);[Dllimport("kernel32.dll")]static extern bool DeleteVolumeMountPoint(string lpszVolumeMountPoint);[Dllimport("kernel32.dll")]static extern bool SetVolumeMountPoint(string lpszVolumeMountPoint,string lpszVolumename);const int MAX_PATH = 260;private voID ChangeDriveLetter(){ StringBuilder volume = new StringBuilder(MAX_PATH); if (!GetVolumenameForVolumeMountPoint(@"D:\",volume,(uint)MAX_PATH)) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); if (!DeleteVolumeMountPoint(@"D:\")) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); if (!SetVolumeMountPoint(@"Z:\",volume.ToString())) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());} 小心运行此代码,您必须先删除驱动器安装点,然后再将其分配给新的字母,这可能会导致问题,原始代码:
/*****************************************************************WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING This program will change drive letter assignments,and the changes persist through reboots. Do not remove drive letters of your hard disks if you do not have this program on floppy disk or you might not be able to access your hard disks again!*****************************************************************/总结
以上是内存溢出为你收集整理的C#如何将CDROM的驱动器号从D:更改为Z:全部内容,希望文章能够帮你解决C#如何将CDROM的驱动器号从D:更改为Z:所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)