2010-06-24 10 views
5

में कमांड लाइन से काम करता है, माइक्रोसॉफ्ट, http://msdn.microsoft.com/en-us/library/ee872121(VS.85).aspx से मार्गदर्शिका के बाद, मैं अपने प्रोग्राम को प्रोग्राम में गतिशील पुस्तकालयों को हल करने में सक्षम होने के लिए सक्षम हूं जो आदेश में आवश्यक हैं इसके लिए काम करने के लिए।एप्लिकेशन विशिष्ट पथ जोड़ना, इसलिए यह विंडोज

तो मैं अपने निष्पादन योग्य के पूर्ण नाम और पथ के साथ एक मान जोड़ता हूं, और डीएलएल फ़ाइलों की निर्देशिका के पूर्ण पथ के साथ इस प्रविष्टि (नाम पथ) में उपकुंजी जोड़ता हूं।

और जादू। यह काम करता हैं। मैं स्टार्ट मेनू पर जाता हूं, और myprogram.exe टाइप करता हूं और यह शुरू होता है और अब डीएलएल फाइलों को सही तरीके से ढूंढने में सक्षम है।

हालांकि, अगर मैं cmd.exe कमांड का उपयोग कर कमांड प्रॉम्प्ट प्रारंभ करता हूं, और फिर myprogram.exe को चलाने का प्रयास करें तो DLL के समाधान को हल करने में सक्षम नहीं है। कुछ कारणों से कमांड प्रॉम्प्ट रजिस्ट्री के मानों को मानने/पढ़ने के लिए प्रतीत नहीं होता है जब यह HKEY_LOCAL_MACHINE \ सॉफ़्टवेयर \ Microsoft \ Windows \ CurrentVersion \ App Paths

कोई सुझाव है कि मैं इस व्यवहार को कैसे काम कर सकता हूं कमांड प्रॉम्प्ट के साथ-साथ स्टार्ट मेनू से भी?

उत्तर

5

यह सही है। HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App PathsShellExecuteEx द्वारा उपयोग किया जाता है और CreateProcess द्वारा नहीं किया जाता है। इसलिए सभी प्रोग्राम आपके आवेदन के App Paths से सेटिंग्स का उपयोग नहीं करेंगे। यदि आप cmd.exe के लिए PATH को परिभाषित करना चाहते हैं तो आप App Paths के उपकुंजी को cmd.exe नाम से उपयोग कर सकते हैं या PATH पर्यावरण चर को संशोधित करने के लिए पुरानी %SystemRoot%\System32\autoexec.nt फ़ाइल का उपयोग कर सकते हैं।

+0

बिल्कुल सही। यह समस्या हल करता है। – Smidstrup

+1

"cmd.exe नाम के साथ ऐप पथ के उपकुंजी का उपयोग करें" का क्या मतलब है? –

+1

@ मिखाइल ओरलोव: आप 'HKEY_LOCAL_MACHINE \ सॉफ़्टवेयर \ माइक्रोसॉफ्ट \ विंडोज \ CurrentVersion \ App पथ' के तहत उपकुंजी "cmd.exe" बना सकते हैं और "पथ" नाम के साथ REG_SZ मान और किसी भी पथ को मान के रूप में बना सकते हैं। फिर आप "रन" स्टार्ट मेनू से "cmd.exe" प्रारंभ में चुनते हैं। आप "सेट पैथ" के साथ देख सकते हैं कि पथ पर्यावरण वातावरण में पथ है जिसे आपने रजिस्ट्री में पहली बार दर्ज किया है। – Oleg

-2

मैं इसे अपना सर्वश्रेष्ठ शॉट दूंगा।

सबसे पहले, ध्यान दें कि cmd & दोनों रन \ स्टार्ट मेनू विकल्प C: \ WINDOWS \ system32 में सबकुछ चल रहे हैं।

यदि आप वहां डीएल थे तो यह काम करेगा।

यदि आप इसे वहां नहीं रखना चाहते हैं, तो आप "मेरा कंप्यूटर" -> "गुण" -> "उन्नत" -> "पर्यावरण चर" पर दायां माउस बटन क्लिक करके "पर्यावरण चर" को बदल सकते हैं। ।

शुभकामनाएं।

+0

ओप का पोस्ट लिंक में माइक्रोसॉफ्ट द्वारा ऐप पथ की सिफारिश से संबंधित था। – Travis

1

कमांड लाइन से "START/WAIT app.exe" का उपयोग करना भी संभव है जो ShellExecuteEx का उपयोग करता है।

संबंधित मुद्दे