Bir uygulama (.EXE) C #?


Yanıtlar:


168

System.Diagnostics.Process.Start()Yöntemi kullanın .

Nasıl kullanılacağı ile ilgili bu makaleye göz atın .

Process.Start("notepad", "readme.txt");

string winpath = Environment.GetEnvironmentVariable("windir");
string path = System.IO.Path.GetDirectoryName(
              System.Windows.Forms.Application.ExecutablePath);

Process.Start(winpath + @"\Microsoft.NET\Framework\v1.0.3705\Installutil.exe",
path + "\\MyService.exe");

230

İşte size yardımcı kod pasajı:

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;
}

Bu nesnelerle yapabileceğiniz çok daha fazla şey var, belgeleri okumalısınız: ProcessStartInfo , Process .


7
Sadece bunun .exes dışındaki diğer dosya türleriyle de çalıştığını belirtmek istedim. Sadece açmak istediğiniz dosyanın üzerine gelin ve Windows açmak için elinden geleni yapacaktır: System.Diagnostics.Process.Start (@ "C: \ Users \ Blank \ Desktop \ PdfFile.pdf");
DLeh

WindowStyle = ProcessWindowStyle.Hidden GUI olmayanlar içindir. Bunu ilk çalıştırdığımda UseShellExecute = false olmadan başarısız oldu, ama şimdi çalışıyor. Orada neler olduğundan emin değilim ...
Barton

Ne exe tam adını bilmiyorsanız, "PathTo * .exe" aramak istiyorum Bu mümkün mü? İsmin geri kalanında "*" kullanabilir miyim?
vishal

@vishal, bu işlem belirli bir yürütülebilir dosyayı çağırmak içindir. Kesinlikle kullanmayı deneyebilirsiniz PathTo*.exeama çalışmasını beklemem. (a) birden fazla eşleşme varsa ne olur? (b) Microsoft'un kodunun zayıf güvenlik olacağından buna izin vermeyeceğini umuyorum.
sfuqua

58
System.Diagnostics.Process.Start("PathToExe.exe");

Ne exe tam adını bilmiyorsanız, "PathTo * .exe" aramak istiyorum Bu mümkün mü?
vishal

@vishal, yürütülebilir dosyayı bulmak için bir arama prosedürü kodlamanız gerekir
KADEM Mohammed

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

14

Benim gibi System.Diagnostics kullanırken sorun yaşıyorsanız, onsuz çalışacak aşağıdaki basit kodu kullanın:

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

10
Bu nasıl "System.Diagonostics olmadan"? ProcessSystem.Diagnostics'te.
Paul Sinclair


2

Sadece file.exe dosyanızı \ bin \ Debug klasörüne koyun ve şunu kullanın:

Process.Start("File.exe");

3
Cevabınız önceki tüm cevaplarda nasıl gelişiyor?
mustaccio

Bu yazı görmek için gelen insanların çoğu genellikle benim hata "klasör.exe kullandıklarında hata ayıklama klasörü koymak bir dosya yolu hakkında karıştı doğrudan bu durumda bir yol gerek anlamak.
Amin Mohamed

0

Kullanım Process.Start bir işlemi başlatmak için.

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

0

Bunu dene:

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

(System.Diagnostics kitaplığını kullandığınızdan emin olun)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.