2009-06-06 11 views
1

C#でCD/DVDからアプリケーションを起動したかどうか確認するにはどうすればよいですか?C#でCD/DVDからアプリケーションを起動したかどうか確認するにはどうすればよいですか?

+0

... Application.ExecutablePathとDriveInfoを使用すると、偽造することができることを心に留めておきますか?また、ドライブであるかのようにCDまたはDVDイメージをマウントするDAEMONツールのようなものも認識しておく必要があります。 DAEMONのツールがどれほどCD/DVDドライブに似ているかわかりません。 –

答えて

8

Application.StartupPathプロパティで、exeの開始パスを取得します。 新しいDriveInfo(driveletter_from_path).DriveTypeを使用して、CDまたはハードディスクであるかどうかを判断します。

codemanixの答えに拡大
 FileInfo file = new FileInfo(Process.GetCurrentProcess().MainModule.FileName); 
     DriveInfo drive = new DriveInfo(file.Directory.Root.ToString()); 
     switch (drive.DriveType) 
     { 
      case DriveType.CDRom: 
       MessageBox.Show("Started from CD/DVD"); 
       break; 
      case DriveType.Network: 
       MessageBox.Show("Started from network"); 
       break; 
      case DriveType.Removable: 
       MessageBox.Show("Started from removable drive"); 
       break; 
      default: 
       break; 
     } 
+3

起動パス(プログラムの場所に関係なく、何でも構いません)ではなく、実行可能パスが必要になるでしょう。 – Zifre

+1

DriveInfoクラスに関する素晴らしい情報。 http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx –

3

実行可能パスを確認し、CD/DVDドライブにあるかどうか確認する必要があります。

+1

そして、パスがCD/DVDドライブにあるかどうかをどのように知ることができますか? –

8

string location = Assembly.GetExecutingAssembly().Location; 
DriveInfo info = new DriveInfo(Path.GetPathRoot(location)); 
if (info.DriveType == DriveType.CDRom) 
{ 
    Console.WriteLine("Started from CD-ROM"); 
} 

MSDN: description of the drive types.

4

:あなたはそのような何かを行うことができます

1

を私はなぜあなたはそれをやっているが、だけでは完全にはわかりませんコピー防止の試みである場合、古い(古代)substをMS-DOSで覚えておいてください。

ちょうどあなたが知りたいと思い、なぜ私は好奇心が強い

関連する問題