답변:
Matt Hamilton이 제안한 것처럼 프로세스를 제한적으로 제어 할 수있는 빠른 방법은 System.Diagnostics.Process 클래스에서 정적 Start 메서드를 사용하는 것입니다.
using System.Diagnostics;
...
Process.Start("process.exe");
대안은 Process 클래스의 인스턴스를 사용하는 것입니다. 이를 통해 스케줄링, 실행되는 창 유형 및 가장 유용하게는 프로세스가 완료 될 때까지 기다리는 기능을 포함하여 프로세스를 훨씬 더 제어 할 수 있습니다.
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.
이 방법을 사용하면 위에서 언급 한 것보다 훨씬 많은 제어가 가능합니다.
System.Diagnostics.Process.Start 메소드를 사용하여 프로세스를 시작할 수 있습니다 . URL을 문자열로 전달하면 기본 브라우저가 시작됩니다.
Matt가 말했듯이 Process.Start를 사용하십시오 .
URL 또는 문서를 전달할 수 있습니다. 등록 된 응용 프로그램에 의해 시작됩니다.
예:
Process.Start("Test.Txt");
그러면 Text.Txt가로드 된 Notepad.exe가 시작됩니다.
Win32Exception
(0X80004005) "없음 응용 프로그램이이 작업에 대해 지정한 파일과 연관된"
이것을 선언
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
그리고 이것을 함수 안에 넣습니다 ( "checkInstalled"는 선택 사항이지만, 사용하려면이를 구현해야합니다).
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);
}
Windows에서 사용하는 경우
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();
.Net Framework에서는 작동하지만 Net core 3.1에서도 UseShellExecute를 true로 설정해야합니다.
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();