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
'programing' 카테고리의 다른 글
"인스턴스 설치가 누락된 심리" 오류를 해결하는 방법은 무엇입니까? (0) | 2023.06.02 |
---|---|
안드로이드 레이아웃 파일에서 "tools:context"는 무엇입니까? (0) | 2023.06.02 |
Ruby %r{} 식 (0) | 2023.06.02 |
소수점 이하 두 자리까지 소수점 이하 값을 표시하려면 어떻게 해야 합니까? (0) | 2023.06.02 |
AzureBob 업로드 오류: 지정한 BLOB가 이미 있습니다. (0) | 2023.05.28 |