मैं .NET में कंसोल एप्लिकेशन विकसित कर रहा हूं और मैं cmd.exe से या explorer.exe से एप्लिकेशन शुरू होने वाली जानकारी के आधार पर थोड़ा व्यवहार बदलना चाहता हूं। क्या यह संभव है?क्या यह निर्धारित करना संभव है कि कौन सी प्रक्रिया मेरे .NET अनुप्रयोग को शुरू करती है?
उत्तर
Process this_process = Process.GetCurrentProcess();
int parent_pid = 0;
using (ManagementObject MgmtObj = new ManagementObject("win32_process.handle='" + this_process.Id.ToString() + "'"))
{
MgmtObj.Get();
parent_pid = Convert.ToInt32(MgmtObj["ParentProcessId"]);
}
string parent_process_name = Process.GetProcessById(parent_pid).ProcessName;
CreateToolhelp32Snapshot Function में प्रोसेस 32 फर्स्ट विधि है जो आपको PROCESSENTRY32 Structure पढ़ने की अनुमति देगी। - पहचानकर्ता प्रक्रिया है कि इस प्रक्रिया (अपनी मूल प्रक्रिया) बनाया का
th32ParentProcessID: संरचना एक संपत्ति है कि आप इच्छित जानकारी मिल जाएगा है।
इस लेख की मदद से आप ToolHelpSnapshot समारोह का उपयोग शुरू करने देगा: ToolHelp/ManagementObject साथ
एक मुद्दा दृष्टिकोण है कि माता-पिता की प्रक्रिया पहले से ही बाहर आ गए हैं सकता है।
GetStartupInfo Win32 फ़ंक्शन (यदि कोई .NET समतुल्य नहीं है तो PInvoke का उपयोग करें) उस संरचना में भर जाता है जिसमें विंडो शीर्षक शामिल है। Win32 कंसोल एप्लिकेशन "app.exe" के लिए, यह शीर्षक स्ट्रिंग "एप" है जब cmd से शुरू होता है और "c: \ full \ path \ to \ app.exe" एक्सप्लोरर (या वीएस डीबगर) से शुरू होता है।
बेशक यह एक हैक (अन्य संस्करणों में परिवर्तन के अधीन, आदि) है।
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
int main()
{
STARTUPINFO si;
GetStartupInfo(&si);
MessageBox(NULL, si.lpTitle, NULL, MB_OK);
return 0;
}
- 1. सीएसएस विशिष्टता - "यह" कैसे तय करती है कि कौन सी शैलियों को लागू करना है?
- 2. क्या यह निर्दिष्ट करना संभव है कि
- 3. यह निर्धारित करना कि CFTypeRef क्या है?
- 4. क्या यह निर्धारित करना संभव है कि एनईटी असेंबली वास्तव में कौन सी भाषा लिखी गई थी?
- 5. यह निर्धारित करना कि कोई फ़ोल्डर .NET
- 6. मेरे .NET अनुप्रयोग
- 7. यह निर्धारित करना कि छवि
- 8. निर्धारित करना कि कौन सी टीएफएस प्रक्रिया टेम्पलेट का उपयोग किया जा रहा है
- 9. यह निर्धारित करना कि क्या ASP.Net ठीक से पंजीकृत है
- 10. यह निर्धारित करना कि stringByEvaluatingJavaScriptFromString
- 11. निर्धारित करें कि कौन सी प्रक्रिया क्लिपबोर्ड को लॉक कर रही है
- 12. टीम फाउंडेशन सर्वर - मेरे लिए कौन सी प्रक्रिया टेम्पलेट है?
- 13. क्या होता है जब एक .NET अनुप्रयोग शुरू होता है?
- 14. क्या यह निर्धारित करना संभव है कि सिम/फोन नंबर बदल गया है या नहीं?
- 15. क्या यह चुनना संभव है कि कौन सी डॉक्सीजन चेतावनी दिखाना है?
- 16. यह निर्धारित करना कि कोई असेंबली .NET Framework
- 17. क्या यह निर्धारित करना संभव है कि कोई प्रकार एक स्कॉम्ड गणना प्रकार है या नहीं?
- 18. यह निर्धारित करना कि पाइथन प्रक्रिया के लिए stdout
- 19. csrss.exe प्रक्रिया क्या करती है?
- 20. .NET अनुप्रयोग डोमेन क्या है?
- 21. क्या यह जांचना संभव है कि आपके वायरलेस नेटवर्क से कौन कनेक्ट है?
- 22. यह निर्धारित करना कि jQuery .ajax()
- 23. WinForms एप्लिकेशन के लिए यह निर्धारित करने का सबसे अच्छा तरीका क्या है कि यह निर्धारित करने के लिए कि कौन सी विंडोज ऑपरेटिंग सिस्टम चल रहा है?
- 24. यह निर्धारित करने के लिए कि विधि में कौन सी विधियों को बुलाया जाता है?
- 25. यह निर्धारित करें कि सी/सी ++
- 26. क्या यह एक .NET स्ट्रीम क्लोन करना संभव है?
- 27. क्या म्यूटेक्स रखने वाले धागे को निर्धारित करना संभव है?
- 28. क्रोम/आईई 8 बहु-प्रक्रिया डिज़ाइन, क्या यह .NET में संभव है?
- 29. यह निर्धारित करना कि कोई उद्देश्य-सी विधि रनटाइम
- 30. निर्धारित करें कि कक्षा कितनी मेमोरी का उपयोग करती है?
कृपया एडम मिट्ज टिप्पणी को देखें। सादगी के कारण मुझे अभी भी यह जवाब सबसे अच्छा मिला है। हालांकि किसी को चिंता करनी चाहिए। –