سؤال كيف يعرف مربع الحوار "تشغيل" مكان التطبيقات؟


كمستخدم قوي ، أستخدم باستمرار مربع الحوار "تشغيل".

أستطيع أن أفهم لماذا تعمل الأوامر التالية ، كما هي في PATH متغيرات البيئة.

mspaint
diskmgmt.msc
explorer

هذه الأوامر تعمل أيضا في CMD.

تعمل الأوامر التالية في التشغيل ، لكنها ليست في PATH، وأنها لا تعمل في CMD.

firefox
winword
iexplore

كيف يعرف تشغيل أين هذه الملفات؟


69
2017-08-05 16:48


الأصل




الأجوبة:


عند تنفيذ أمر من مربع الحوار "تشغيل" ، يقوم النظام بالبحث في App Paths مفتاح التسجيل هنا:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

و

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

مثال

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\filezilla.exe

(default) بيانات القيمة لديه المسار الكامل إلى الملف التنفيذي.

إذا لم يتم العثور عليه ، فإنه يبحث في كل مجلد مضمّن في PATH.

بينما لا يشير موجه الأوامر إلى مفاتيح التسجيل هذه. انها تبحث فقط في PATH.


89
2017-08-05 16:51



آه ، هذا ربما يفسر لماذا لا يمكن أن يكون لديك عدة برامج بنفس الاسم العمل مع خيارات مفتوحة. تصميم رديء. - curiousdannii
نعم تقريبا. لكن فتح مع الحوار يقرأ من HKCR\Applications و RegisteredApplications - Win32Guy
قدمت Microsoft مقطع فيديو حول هذا: channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-133-App-Paths - magicandre1981
يمكنك بالطبع استخدام start مدمج الذي لا البحث في مسارات التطبيق. - Neil
هذا جيد موثقة هنا. لقد شرحت أيضاً كيفية قيام cmd ببحثها هنا - إنه جزء من حالة خاصة متميزة عن واجهات برمجة تطبيقات Win32. - Bob


إجابة w32sh يشير بشكل صحيح إلى أن المفاتيح الإضافية التي تم البحث عنها بواسطة مربع الحوار "تشغيل" موجودة هنا:

  • مسارات HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App \
  • مسارات HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App \

يوجد الوثائق الرسمية لهذه المسارات.

من الحقائق المهمة حول هذه المفاتيح أن اسم المفتاح (على سبيل المثال "filezilla.exe") لا يضطر إلى مطابقة المسار بالكامل بأي طريقة. ضمن Windows 7 ، يمكن أن تكون القيمة سطر أوامر بسيط ، شبيه بما يمكن استخدامه كـ "هدف" للاختصار.

على سبيل المثال ، اعتدت أن يكون هذا في السجل الخاص بي:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\jedit.exe]
@="\"C:\\WINDOWS\\system32\\javaw.exe\" -Xms24M -Xmx512M -jar \"C:\\Program Files\\jEdit\\jedit.jar\" -reuseview"

يبدو أنني لا أستطيع القيام بهذا العمل في Windows 10 ، ولكن لا يزال بإمكانك الإشارة إلى أي ملف ، بما في ذلك ملف دفعي ، على سبيل المثال ،

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\jedit.exe]
@="C:\\Program Files\\jEdit\\run-jedit.bat"

يتيح لك كتابة "jedit" أو "jedit C: \ foo \ bar \ something.txt" لتشغيل JVM مع الخيارات المناسبة وإطلاق / إعادة الاستخدام جيديت.

بقدر ما أستطيع أن أرى ، يجب أن ينتهي اسم المفتاح بـ "exe" ، لذلك لإنشاء اسم مستعار لـ "abc" ، يمكنك إنشاء مفتاح "abc.exe" ، حتى إذا لم يكن يشير إلى ملف ".exe" .


4
2017-08-08 09:02



لا يعمل هنا إذا استخدمت مفاتيح إضافية بعد اسم الملف القابل للتنفيذ. - Win32Guy
@ W32S جلالة الملك ، وأعتقد أنه تغير في فوز 10 :( - IMSoP


هناك متغير بيئة يسمى PATH ، أو٪ PATH٪ في سطر الأوامر. يحتوي على سلسلة من المواقع للبحث خلالها.


-1
2018-01-06 00:45