エクスプローラーを強制終了して再起動するプログラムを作成していますが、場所をハードコーディングしたくありません。なぜなら、別の場所に Windows をインストールする人がいるからです (たとえば、C:\ドライブは存在しましたが、何もインストールされていませんでした)
Environment.SpecialFolder の下を調べてみました。しかし、その下に「Windows」オプションが表示されません
これを行う最善の方法は何ですか?
エクスプローラーを強制終了して再起動するプログラムを作成していますが、場所をハードコーディングしたくありません。なぜなら、別の場所に Windows をインストールする人がいるからです (たとえば、C:\ドライブは存在しましたが、何もインストールされていませんでした)
Environment.SpecialFolder の下を調べてみました。しかし、その下に「Windows」オプションが表示されません
これを行う最善の方法は何ですか?
http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
これらを試してください:
Environment.GetEnvironmentVariable("SystemRoot")
Environment.GetEnvironmentVariable("windir")
Environment.GetFolderPath( Environment.SpecialFolder.Windows )Windows フォルダへのパスを返します。環境変数よりもこのアプローチをお勧めします。これは、必要なことを正確に実行する API (.NET 4.0 以降) を使用するためです。
Windows エクスプローラーを単純に強制終了して再起動するには、システム フォルダーへのパスは必要ありません。これは既に PATH 環境変数に含まれているためです (ユーザーが混乱しない限り)。
その短いプログラムは、すべての explorer.exe インスタンスを強制終了してから、explorer.exe を再起動します。
static void Main(string[] args)
{
foreach (Process process in Process.GetProcessesByName("explorer"))
{
if (!process.HasExited)
{
process.Kill();
}
}
Process.Start("explorer.exe");
}