C #에서 프로세스를 시작하려면 어떻게합니까?
사용자가 버튼을 클릭 할 때 URL을 시작하는 등의 프로세스를 시작하려면 어떻게합니까?
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가 시작됩니다.
내 프로그램에서 다음을 사용했습니다.
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));
Process 클래스를 사용하십시오 . MSDN 설명서에는 사용 방법에 대한 예가 있습니다.
이 구문을 사용하여 모든 응용 프로그램을 실행할 수 있습니다.
System.Diagnostics.Process.Start("Example.exe");
URL에 대해서도 마찬가지입니다. 이 사이에 URL을 작성하십시오 ()
.
예:
System.Diagnostics.Process.Start("http://www.google.com");
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
이것을 선언
[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);
}
}
}
Please note that it is a sample ASP.NET page as an example. You should try and improvise a little bit.
To start Microsoft Word for example, use this code:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
For more explanations, check out this link.
참고URL : https://stackoverflow.com/questions/181719/how-do-i-start-a-process-from-c
'IT story' 카테고리의 다른 글
Pylons에서 Nose로 단일 테스트를 실행하는 방법 (0) | 2020.06.13 |
---|---|
솔루션에서 nuget 패키지 복원을 제거 (0) | 2020.06.13 |
ASP.NET MVC 1의 HttpContextBase에서 HttpContext 개체를 얻는 방법은 무엇입니까? (0) | 2020.06.13 |
REST API-PUT DELETE POST GET을 사용하는 이유는 무엇입니까? (0) | 2020.06.13 |
bash 스크립트에서 정규 표현식으로 테스트를 어떻게 부정합니까? (0) | 2020.06.12 |