SetCurrentDirectoryप्रक्रिया शुरू होने के बाद कॉल करने के लिए आप DLL इंजेक्शन का उपयोग कर सकते हैं । इसके लिए आपको एक इंजेक्टर एप्लिकेशन और प्लस डीएलएल को इंजेक्ट करना होगा। कुछ ट्यूटोरियल मौजूद हैं; शायद मैंने जो दो सबसे अच्छे पाए हैं वे हैं:
उस के माध्यम से प्राप्त करने के लिए आपको सी ++ प्रोग्रामिंग पृष्ठभूमि (और एक कामकाजी माहौल) की एक सभ्य राशि की आवश्यकता होगी।
हालाँकि, यह मानता है कि सेवा वर्तमान निर्देशिका को देख रही है। एक और संभावना है कि यह उपयोग कर रहा है %path%। आप कहते हैं कि यह "शुरू होता है system32, कुछ और स्थानों की कोशिश करता है, और अंततः इसकी अपनी निर्देशिका है", इसलिए यह मेरे लिए अधिक संभावना है।
उन निर्देशिकाओं की तुलना करें जिन्हें आप procmonअपने साथ देखते हैं %path%। यदि वे समान हैं, तो सेवा चलाने वाले उपयोगकर्ता के SYSTEM %path%या तो संशोधित करने पर विचार %path%करें, ताकि आप जिस निर्देशिका को खोजना चाहते हैं वह पहले हो।
मेरा मानना है कि फ्रेड सही है, हालांकि - जब तक यह बहुत बार नहीं हो रहा है, तब तक आप इसमें से कोई भी महत्वपूर्ण प्रदर्शन लाभ देखने की संभावना नहीं है । सरल फ़ाइल खुला संचालन विशेष रूप से महंगा नहीं है, खासकर अगर यह एक स्थानीय पथ है और फ़ाइल वास्तव में मौजूद नहीं है।