vb.net

2009-09-09 4 views
6

में फ़ाइल पथ का उपयोग करके प्रोग्रामेटिक रूप से एक प्रोग्राम को समाप्त करना मैं vb.net के माध्यम से पूर्ण फ़ाइल पथ का उपयोग कर एक एप्लिकेशन को समाप्त करना चाहता हूं, फिर भी मुझे इसे प्रक्रिया के तहत नहीं मिला। मैं एक आसान प्रक्रिया की उम्मीद कर रहा था। रोकें (फ़ाइलपैथ), प्रक्रिया के साथ। स्टार्ट, लेकिन ऐसी कोई किस्मत नहीं।vb.net

मैं ऐसा कैसे कर सकता हूं?

+0

मैं एक व्यक्ति को गंभीरता से क्यों ले जाऊंगा जिसका प्रोफाइल कहता है कि वह एंटार्टिका से है और एक एमएमओआरपीजी बना रहा है जो जल्द ही खरीद के लिए उपलब्ध होगा। बीटीडब्ल्यू, आप अपने फ़ाइल पथ के माध्यम से अनुप्रयोगों को समाप्त नहीं करते हैं। इसके बजाय आप उस प्रक्रिया के नाम का उपयोग करते हैं जो आमतौर पर निष्पादन योग्य फ़ाइल का नाम होता है। –

+0

अंटार्कटिका चीज एक मजाक है, एमएमओआरपीजी बिक्री के लिए नहीं है, मेरा नवीनतम काम (सॉफ्टवेयर, एमएमओ से असंबंधित) जल्द ही बिक्री के लिए होगा। मुझे एक लड़के को गंभीरता से क्यों लेना चाहिए जो एक छोटा मजाक नहीं ले सकता? मुझे पता है कि आप अपने फ़ाइल पथों के माध्यम से ऐप्स को समाप्त नहीं करते हैं, लेकिन मैं ऐसा करने के बारे में पूछ रहा हूं। – Cyclone

उत्तर

2

आपको प्रत्येक प्रक्रिया 'मॉड्यूल प्रॉपर्टी' में देखना होगा, और बदले में, अपने वांछित पथ के खिलाफ फ़ाइल नामों को जांचना होगा।

यहाँ एक उदाहरण है:

VB.NET

Dim path As String = "C:\Program Files\Ultrapico\Expresso\Expresso.exe" 
    Dim matchingProcesses = New List(Of Process) 

    For Each process As Process In process.GetProcesses() 
     For Each m As ProcessModule In process.Modules 
      If String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) = 0 Then 
       matchingProcesses.Add(process) 
       Exit For 
      End If 
     Next 
    Next 

    For Each p As Process In matchingProcesses 
     p.Kill() 
    Next 

# सी

string path = @"C:\Program Files\Ultrapico\Expresso\Expresso.exe"; 
var matchingProcesses = new List<Process>(); 
foreach (Process process in Process.GetProcesses()) 
{ 
    foreach (ProcessModule m in process.Modules) 
    { 
     if (String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) == 0) 
     { 
      matchingProcesses.Add(process); 
      break; 
     } 
    } 
} 

matchingProcesses.ForEach(p => p.Kill()); 

संपादित करें: स्ट्रिंग तुलना के लिए खाते में केस संवेदनशीलता लेने के लिए कोड अद्यतन ।

+0

मेरा आवेदन vb.net में है, मुझे लगता है कि आपका उदाहरण सी # में था। मैं सी # में बहुत धाराप्रवाह नहीं हूं, इसलिए मैं इसे बंद नहीं कर सकता। – Cyclone

+0

मेरी पोस्ट में vb.net कोड जोड़ा गया। –

+0

यह काम करना चाहिए, धन्यवाद! – Cyclone

2

कोशिश

System.Diagnostics.Process.GetProcessesByName (nameOfExeFile) प्रथम()। मारने()

इस फ़ाइल का रास्ता ध्यान नहीं देता।

+0

* पथ के साथ * करने के लिए कोई तरीका है? या, फ़ाइल पथ से फ़ाइल का नाम जानने का कोई तरीका है? – Cyclone