43

エクスプローラーを強制終了して再起動するプログラムを作成していますが、場所をハードコーディングしたくありません。なぜなら、別の場所に Windows をインストールする人がいるからです (たとえば、C:\ドライブは存在しましたが、何もインストールされていませんでした)

Environment.SpecialFolder の下を調べてみました。しかし、その下に「Windows」オプションが表示されません

これを行う最善の方法は何ですか?

4

4 に答える 4

72

http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx

これらを試してください:

Environment.GetEnvironmentVariable("SystemRoot")

Environment.GetEnvironmentVariable("windir")
于 2009-09-30T16:50:55.677 に答える
57

Environment.GetFolderPath( Environment.SpecialFolder.Windows )Windows フォルダへのパスを返します。環境変数よりもこのアプローチをお勧めします。これは、必要なことを正確に実行する API (.NET 4.0 以降) を使用するためです。

于 2013-03-11T13:34:11.803 に答える
10

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");
}
于 2009-09-30T17:13:20.663 に答える