Explorerを強制終了して再起動するプログラムを書いていますが、別の場所にウィンドウをインストールする人がいるため、場所をハードコーディングしたくありません(たとえば、C:\のd:\ドライブにインストールされている人を見つけました)ドライブは存在しましたが、何もインストールされていませんでした)
Environment.SpecialFolderの下を見てみました。その下に「ウィンドウ」オプションが表示されません
これを行う最良の方法は何ですか?
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以降)を使用するため、環境変数よりもこのアプローチをお勧めします。
私は以下の使用を強くお勧めします:
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))
管理者権限は不要で、.NETフレームワークのすべてのバージョンをサポートしています。
Windowsエクスプローラーを単に終了して再起動するには、システムフォルダーへのパスは必要ありません。これは、PATHユーザーが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");
}