देता है मैं this code के समान CreateProcessAsUser() API का उपयोग कर किसी सेवा से उपयोगकर्ता-मोड प्रक्रिया शुरू करने का प्रयास कर रहा हूं। मेरा कोड 99% समय में ठीक काम करता है, एपीआई सफल होने के समय को छोड़कर, मुझे प्रक्रिया PROCESS_INFORMATION संरचना से संभालती है लेकिन प्रक्रिया स्वयं इंटरैक्टिव उपयोगकर्ता सत्र में दिखाई नहीं देती है जिसे मैं चलाने के लिए इरादा रखता था।CreateProcess सफल होता है, लेकिन GetExitCodeProcess C0000142
दिलचस्प बात यह है कि यदि मैं प्रक्रिया संभाल पर GetExitCodeProcess() पर कॉल करता हूं तो यह रिटर्न कोड 0xC0000142 के साथ सफल होता है। कोई विचार क्यों?
जब विफलता होती है, तो क्या आप बच्चे की प्रक्रिया बिल्कुल शुरू कर सकते हैं? क्या यह संभव है कि आप जिस .exe को लॉन्च करने का प्रयास कर रहे हैं वह डीएलएल पर निर्भर करता है जो गायब हैं? –
रिटर्न कोड निश्चित रूप से व्यवहार फिट बैठता है, यह STATUS_DLL_INIT_FAILED है। जो निश्चित रूप से प्रक्रिया शुरू करने से रोक देगा। डीएलएल में से एक यह अपने DllMain() प्रविष्टि बिंदु से FALSE रिटर्न का उपयोग करता है। आपको इसे अपनी देव मशीन पर पुनर्मुद्रण करने की आवश्यकता होगी ताकि आप इसे डीबग कर सकें। –
@ हंसपैसेंट और माइकलश सलाह के लिए धन्यवाद। मुझे उस उपयोगकर्ता सत्र में लॉग इन करने का प्रयास करना होगा और देखें कि क्या मैं मैन्युअल रूप से प्रक्रिया शुरू कर सकता हूं। मुद्दा यह है कि यह हर समय नहीं होता है ... लेकिन, मेरे पास सवाल यह है कि CreateProcessAsUser() सत्य क्यों लौटाता है जब यह स्पष्ट रूप से कुछ भी शुरू नहीं करता है? – ahmd0