programing

C#에서 프로세스를 시작하려면 어떻게 해야 합니까?

padding 2023. 6. 2. 20:11
반응형

C#에서 프로세스를 시작하려면 어떻게 해야 합니까?

사용자가 단추를 클릭할 때 URL을 시작하는 것과 같은 프로세스를 시작하려면 어떻게 해야 합니까?

Matt Hamilton이 제안한 바와 같이, 공정을 제한적으로 제어할 수 있는 빠른 방법은 시스템에서 정적 시작 방법을 사용하는 것입니다.진단.프로세스 클래스...

using System.Diagnostics;
...
Process.Start("process.exe");

또는 프로세스 클래스의 인스턴스를 사용하는 방법이 있습니다.이를 통해 예약, 실행할 창 유형, 프로세스가 완료될 때까지 기다리는 기능 등 프로세스를 훨씬 더 효과적으로 제어할 수 있습니다.

using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.

이 방법은 제가 언급한 것보다 훨씬 더 많은 제어를 가능하게 합니다.

시스템을 사용할 수 있습니다.진단.과정.프로세스를 시작하는 방법을 시작합니다.URL을 문자열로 전달할 수도 있습니다. 그러면 기본 브라우저가 시작됩니다.

매트가 말한 대로 프로세스를 사용합니다.시작.

URL 또는 문서를 전달할 수 있습니다.등록된 응용프로그램에 의해 시작됩니다.

예:

Process.Start("Test.Txt");

메모장이 시작됩니다.exe with Text.Txt가 로드되었습니다.

저는 제 프로그램에서 다음을 사용했습니다.

Process.Start("http://www.google.com/etc/etc/test.txt")

그것은 약간 기본적이지만, 저에게는 효과가 있습니다.

var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));
class ProcessStart
{
    static void Main(string[] args)
    {
        Process notePad = new Process();

        notePad.StartInfo.FileName   = "notepad.exe";
        notePad.StartInfo.Arguments = "ProcessStart.cs";

        notePad.Start();
    }
}

프로세스 클래스를 사용합니다.MSDN 설명서에는 사용 방법의 예가 나와 있습니다.

다음 구문을 사용하여 모든 응용 프로그램을 실행할 수 있습니다.

System.Diagnostics.Process.Start("Example.exe");

그리고 URL에 대해서도 같은 것입니다.이 사이에 당신의 URL을 쓰세요.().

예:

System.Diagnostics.Process.Start("http://www.google.com");

Windows에서 사용하는 경우

Process process = new Process();
process.StartInfo.FileName = "Test.txt";
process.Start();

에서 작동합니다.NetFramework이지만 NetCore 3.1의 경우 UseShellExecute를 true로 설정해야 함

Process process = new Process();
process.StartInfo.FileName = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();

선언

[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);

그리고 이것을 당신의 기능 안에 넣으십시오("설치 확인"은 선택 사항이지만, 만약 당신이 그것을 사용한다면, 당신은 그것을 구현해야 합니다).

if (ckeckInstalled("example"))
{
    int count = Process.GetProcessesByName("example").Count();
    if (count < 1)
        Process.Start("example.exe");
    else
    {
        var proc = Process.GetProcessesByName("example").FirstOrDefault();
        if (proc != null && proc.MainWindowHandle != IntPtr.Zero)
        {
            SetForegroundWindow(proc.MainWindowHandle);
            ShowWindowAsync(proc.MainWindowHandle, 3);
        }
    }
}

참고: 두 개 이상의 .exe 인스턴스가 실행 중일 때 이 작업이 작동하는지 잘 모르겠습니다.

포함using System.Diagnostics;.

그리고 나서 이것을 부릅니다.Process.Start("Paste your URL string here!");

다음과 같은 방법을 사용해 보십시오.

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;

namespace btnproce
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string t ="Balotelli";
            Process.Start("http://google.com/search?q=" + t);
        }
    }
}

예를 들어 샘플 ASP.NET 페이지입니다.당신은 약간의 즉흥적인 노력을 해야 합니다.

예를 들어 Microsoft Word를 시작하려면 다음 코드를 사용합니다.

private void button1_Click(object sender, EventArgs e)
{
    string ProgramName = "winword.exe";
    Process.Start(ProgramName);
}

자세한 설명은 이 링크를 참조하십시오.

다음 구문을 사용할 수 있습니다.

private void button1_Click(object sender, EventArgs e)  {
   System.Diagnostics.Process.Start(/*your file name goes here*/);
}

심지어 이것도:

using System;
using System.Diagnostics;
//rest of the code

private void button1_Click(object sender, EventArgs e)  {
   Process.Start(/*your file name goes here*/);
}

두 방법 모두 동일한 작업을 수행합니다.

언급URL : https://stackoverflow.com/questions/181719/how-do-i-start-a-process-from-c

반응형