が、私はそれは私がそれは常にアプリケーションマニフェストUACの昇格による管理者としてリターンを実行している場合を除き、素晴らしい作品シリアルGetVolumeInformation管理戻り0
[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;
}
ボリュームを取得するために、このコードを使用していますマッピングされたネットワークドライブの場合は0です(それ以外の場合は動作します)
管理者ユーザーは、何らかの理由でマッピングされたドライブが表示されないことがあります。これを回避する方法はありますか、代わりにログインしたユーザーとしてコードを呼び出すだけですか?
は、私は、Windows 7 64ビット上だけど、
私は人々がドライブをどのようにマッピングするかには影響しません。残念なことにドライブ文字を使ってシリアルにアクセスする必要があります – Homde
ドライブをマッピングした同じユーザーとして実行している間に実行する必要があります(または、昇格する前にマップされたドライブの「意味」をどこかに保存するロジック) –