1 GetProcesses के साथ पृष्ठभूमि प्रक्रियाएं नहीं मिल सकती ()

पर बनाया गया सवाल Sun, Mar 17, 2019 12:00 AM

मैंने एक एप्लिकेशन के 5 उदाहरण खोले हैं जिन्हें मैंने फॉर्म 1 के "शीर्षक" में नाम दिया है: " हैलो वर्ल्ड "। इसलिए एप्लिकेशन को "हैलो वर्ल्ड"

नाम दिया गया है

टास्कमैनगर में, मैं 10 पृष्ठभूमि प्रक्रियाओं को इस तरह से देख सकता हूं:
हैलो वर्ल्ड (2)
हैलो वर्ल्ड (2)
हैलो वर्ल्ड (2)
हैलो वर्ल्ड (7)
हैलो वर्ल्ड (2)

जब मैं नीचे दिया गया कोड चलाता हूं। यह केवल एक उदाहरण पाता है जो वर्तमान में चल रहे हैं। अन्य 5 उपरोक्त OLD उदाहरण हैं जो किसी कारण से बंद नहीं हुए हैं। मुझे पता है कि बैकग्राउंडप्रोसेस हो सकते हैं जो अभी भी चल रहे हैं।

लेकिन मेरा प्रश्न यह है कि मैं उन 5 प्रक्रियाओं को कैसे खोजूं, जहां मैं चाहता हूं। नीचे दिया गया कोड उन्हें नहीं मिला। क्या गायब हो सकता है?

void getallprocesses()
{
    Process[] processlist = Process.GetProcesses(); String name1 = ""; String name2 = ""; String name3 = "";
    foreach (Process process in processlist)
    {
        //The 5 "Hello World" are not found in name1, name2 or name3
        name1 = process.ProcessName;
        name2 = process.MainWindowTitle;
        name3 = process.MainWindowHandle.ToString();
    }
}

नीचे कोड भी केवल वह उदाहरण दिखाता है जो वर्तमान में चल रहा है और अन्य 5:

नहीं
Process[] processlist = Process.GetProcessesByName("Hello World");
    
- 1
1 उत्तर                              1                         

किसी प्रक्रिया की पहचान करने के लिए फ़ाइल नाम एक बेहतर तरीका है।

        void getallprocesses(string path)
        {
            Process[] processlist = Process.GetProcesses();
            foreach (Process process in processlist)
            {
                try
                {
                    if (string.Compare(process.MainModule.FileName, path, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        //hit
                    }
                }
                catch
                {

                }
            }
        }
    
0
2019-03-17 00: 20: 43Z
  1. दिलचस्प, क्या आपका मतलब यह है कि पथ यह एक है जो .exe फ़ाइल है? मैंने इस कोड का उपयोग करने की कोशिश की, लेकिन एक त्रुटि मिली: "System.ComponentModel.Win32Exception: 'प्रवेश निषेध है"। पथ: "C: /उपयोगकर्ता /पीसी /दस्तावेज़ /विज़ुअल स्टूडियो 2017 /प्रोजेक्ट्स /हैलो वर्ल्ड /हैलो वर्ल्ड /बिन /डीबग /हैलो वर्ल्ड.exe"
    2019-03-17 00: 25: 17Z
स्रोत रखा गया यहाँ