سؤال

string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
        using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(registryKey))
        {
            (from a in key.GetSubKeyNames()
             let r = key.OpenSubKey(a)
             select new
             {
                 Application = r.GetValue("DisplayName")
             }).ToList().FindAll(c => c.Application != null).ForEach(c => Debug.WriteLine(c.Application));

يعرض هذا المقتطف جميع أسماء التطبيق في السجل. أحتاج إلى مسارات إلى ملفات exe التي تنفذ التطبيق وأحتاج إلى معرفة كيفية تشغيلها باستخدام Process.start () ؛

هل كانت مفيدة؟

المحلول

لا يوجد حقًا مصدر نهائي لهذا في أي مكان في Windows. الأقرب الذي ستحصل عليه هو تعداد قائمة START. عرض هذا المنشور لكيفية القيام بذلك:الوصول برمجيا جميع المستخدمين بدء القائمة

في الأساس ، تحتاج إلى استدعاء API ShgetSpecialderderPath لاسترداد موقع قائمة START ثم تعداد جميع الاختصارات في هذا المسار.

يتحدث هذا السؤال Stackoverflow عن كيفية استخراج الرمز من اختصار ؛ يمكنك استخدام نفس الطريقة لاستخراج مسار العمل والقابل للتنفيذ الذي ستحتاج إلى تشغيل التطبيق:استخراج أيقونة من ملف Windows .lnk (الاختصار)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top