2008-10-27 15 views
127

मैं सी # का उपयोग कर एक एप्लिकेशन कैसे लॉन्च कर सकता हूं?सी # से एक एप्लिकेशन (.EXE) लॉन्च करना?

आवश्यकताएँ: Windows XP और Windows Vista पर काम करना चाहिए।

मैंने DinnerNow.net नमूने से नमूना देखा है जो केवल विंडोज   Vista में काम करता है।

उत्तर

50
System.Diagnostics.Process.Start("PathToExe.exe"); 
+0

यदि मुझे exe का पूरा नाम पता नहीं है, तो मैं "PathTo * .exe" पर कॉल करना चाहता हूं क्या यह संभव है? – vishal

8

इसके अतिरिक्त आप यदि संभव हो अपने पथ के लिए वातावरण चरों का उपयोग करना चाहते हैं

  • % WINDIR% = विंडोज निर्देशिका
  • % APPDATA% = अनुप्रयोग डेटा - विस्टा और XP के बीच बहुत भिन्न होता है।

अधिक सूची के लिए लिंक को और अधिक देखें। ProcessStartInfo, Process:

using System.Diagnostics; 

// Prepare the process to run 
ProcessStartInfo start = new ProcessStartInfo(); 
// Enter in the command line arguments, everything you would enter after the executable name itself 
start.Arguments = arguments; 
// Enter the executable to run, including the complete path 
start.FileName = ExeName; 
// Do you want to show a console window? 
start.WindowStyle = ProcessWindowStyle.Hidden; 
start.CreateNoWindow = true; 
int exitCode; 


// Run the external process & wait for it to finish 
using (Process proc = Process.Start(start)) 
{ 
    proc.WaitForExit(); 

    // Retrieve the app's exit code 
    exitCode = proc.ExitCode; 
} 

बहुत अधिक आप इन वस्तुओं के साथ कर सकते है, तो आप प्रलेखन पढ़ना चाहिए:

196

यहाँ उपयोगी कोड का एक टुकड़ा है।

+6

बस यह इंगित करना चाहता था कि यह .exes की तुलना में अन्य फ़ाइल प्रकारों के साथ भी काम करता है। बस उस फ़ाइल को इंगित करें जिसे आप खोलना चाहते हैं और विंडोज इसे खोलने के लिए अपनी पूरी कोशिश करेगा: सिस्टम। डायग्नोस्टिक्स.प्रोसेस.स्टार्ट (@ "सी: \ उपयोगकर्ता \ खाली \ डेस्कटॉप \ PdfFile.pdf"); – DLeh

+0

विंडो स्टाइल = ProcessWindowStyle.Hidden गैर-जीयूआई के लिए है।पहली बार जब मैंने इसे चलाया तो यह UseShellExecute = false के बिना विफल रहा, लेकिन यह अब काम करता है। सुनिश्चित नहीं है कि वहां क्या हो रहा है ... – Barton

+0

सच में, मैंने कभी भी एक GUI ऐप के साथ यह कोशिश नहीं की है। – sfuqua

18
System.Diagnostics.Process.Start(@"C:\Windows\System32\Notepad.exe"); 
13

आप System.Diagnostics का उपयोग कर की तरह मैं था, निम्नलिखित सरल कोड है कि यह बिना काम करेंगे का उपयोग समस्या है, तो: एक प्रक्रिया शुरू करने के लिए

Process notePad = new Process(); 
notePad.StartInfo.FileName = "notepad.exe"; 
notePad.StartInfo.Arguments = "mytextfile.txt"; 
notePad.Start(); 
+5

यह "सिस्टम के बिना। डायग्नोस्टिक्स" कैसे है? सिस्टम में 'प्रक्रिया' है। डायग्नोस्टिक्स। –

0

उपयोग Process.Start

using System.Diagnostics; 
class Program 
{ 
    static void Main() 
    { 
    // 
    // your code 
    // 
    Process.Start("C:\\process.exe"); 
    } 
} 
0

बस \ बिन \ डीबग फ़ोल्डर में अपने file.exe रख दिया और का उपयोग करें:

Process.Start("File.exe"); 
+0

आपके पिछले सभी लोगों में आपका उत्तर कैसे सुधारता है? – mustaccio

1

आज़माएं:

Process.Start("Location Of File.exe"); 

(आप System.Diagnostics लाइब्रेरी का उपयोग सुनिश्चित करें)

-1

एडैम केन

System.Diagnostics.Process.Start(@"C:\Windows\System32\Notepad.exe"); 

यह बहुत अच्छा काम करता है !!!!!

संबंधित मुद्दे