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.