C#でプログラム的windowsフォルダを探します
-
19-09-2019 - |
質問
私はエクスプローラを殺し、再起動するプログラムを書いていますが、一部の人々は(例えば、私はそれがDにインストールされていた誰かた別の場所に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フォルダへのパスを返します。我々は(.NET 4.0以上)したいまさにんAPIを使用しているため、環境変数を介して、このアプローチをお勧めします。
私は非常の使用をお勧めします:
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))
これは、管理者権限を必要とし、.NETフレームワークのすべてのバージョンをサポートしていません。
単に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");
}
所属していません StackOverflow