【发布时间】:2010-12-06 07:47:06
【问题描述】:
我正在使用此代码检索卷序列
[DllImport("Kernel32.dll", SetLastError = true)]
extern static bool GetVolumeInformation(string vol, StringBuilder name, int nameSize, out uint serialNum, out uint maxNameLen, out uint flags, StringBuilder fileSysName, int fileSysNameSize);
public static uint GetVolumeSerial(string strDriveLetter)
{
uint serialNum, maxNameLen, flags;
bool ok = GetVolumeInformation(strDriveLetter, null, 0, out serialNum,out maxNameLen, out flags, null, 0);
return serialNum;
}
效果很好,除非我以管理员身份通过应用程序清单 UAC 提升运行它总是为映射的网络驱动器返回 0(但它可以正常工作)
也许管理员用户出于某种原因看不到映射的驱动器(您会认为它是相反的)。有什么办法可以解决这个问题,或者只是以登录用户的身份调用该代码?
我在 64 位 Windows 7 上,但在 x86 模式下运行应用程序
【问题讨论】: