سؤال

أنا أكتب برنامجا لقتل وإعادة تشغيل Explorer لكنني لا أرغب في صعبة الكود في الموقع لأن بعض الأشخاص يقومون بتثبيت Windows في أماكن مختلفة (على سبيل المثال، وجدت شخصا مثبتا في D: Drive حيث C: كان محرك الأقراص موجود ولكن لم يكن لديك شيء مثبت عليه)

حاولت النظر تحت البيئة. لكنني لا أرى خيار "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 وما فوق).

أود أن أوصي بشدة باستخدام:

Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))

لا يتطلب حقوق المسؤول ودعم جميع إصدارات .NET Framework.

ببساطة قتل وإعادة تشغيل مستكشف Windows، لن تحتاج إلى المسار إلى مجلد النظام حيث يتم تضمين هذا بالفعل في متغير بيئة المسار (ما لم يسبق للمستخدم معه).

سيقتل هذا البرنامج القصير من مثيلات 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");
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top