C\#Process 호출 외부 프로그램의 실현
C\#외부 프로그램 을 사용 합 니 다.하 나 는 Process 류 를 통 해 명령 행 을 통 해 사용 합 니 다.본 고 는 주로 C\#중의 Process 류 를 사용 하여 외부 프로그램 을 호출 하 는 방식 을 말 합 니 다.
프로 세 스:
1.프로 세 스 대상 만 들 기
2.시작 옵션 설정(입 출력 등)
3.작업 디 렉 터 리 전환
4.외부 프로그램 이름 설정
5.입력 매개 변수 설정
6.외부 프로그램 시작
7.외부 프로그램 종료 대기
8.외부 프로그램 닫 기
프로 세 스
프로 세 스 대상 만 들 기
Process process = new Process();
// new Process process
// Process Process ,
using System.Diagnostics;
시작 옵션 설정
process.StartInfo.UseShellExecute = false; //
process.StartInfo.RedirectStandardOutput = true;//
process.StartInfo.RedirectStandardInput = true;//
process.StartInfo.CreateNoWindow = true;
작업 디 렉 터 리 전환1.작업 디 렉 터 리:프로그램 이 실 행 될 때 시작 파일 과 프로필 등 파일 이 있 는 디 렉 터 리 입 니 다.예 를 들 어 데스크 톱 에서 QQ 를 선택 하고'파일 이 있 는 위치 열기'를 오른쪽 클릭 하면 이 디 렉 터 리 는 QQ 가 실 행 된 작업 디 렉 터 리 입 니 다.
현재 작 성 된 C\#프로그램 이 실 행 된 후에 도 작업 디 렉 터 리 가 있 습 니 다.따라서 C\#에서 외부 프로그램 을 호출 하려 면 호출 전에 현재 작업 디 렉 터 리 를 외부 프로그램의 작업 디 렉 터 리 로 전환 하 는 것 이 좋 습 니 다.
2.현재 작업 디 렉 터 리 보기
다음 두 가지 코드 는 현재 프로그램의 작업 디 렉 터 리 를 인쇄 할 수 있 습 니 다.
System.IO.Directory.GetCurrentDirectory();
이 함 수 는 sting 형식 으로 현재 작업 디 렉 터 리 를 되 돌려 줍 니 다.콘 솔 로 현재 작업 디 렉 터 리 를 인쇄 할 수 있 습 니 다.
Console.WriteLine(System.IO.Directory.GetCurrentDirectory());
//
AppDomain.CurrentDomain.BaseDirectory;
AppDomain:응용 프로그램 도 메 인,상기 문 구 는 현재 응용 프로그램 도 메 인의 기본 디 렉 터 리,즉 응용 프로그램 이름.exe 가 있 는 디 렉 터 리 를 가 져 올 수 있 습 니 다.일반적으로 이 디 렉 터 리 도 기본 작업 디 렉 터 리 입 니 다.4.567914.sting 형식 이기 때문에 콘 솔 로 인쇄 할 수 있 습 니 다.
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
이 두 가지 방법 으로 작업 디 렉 터 리 를 인쇄 하 는 차 이 는 다음 과 같다.첫 번 째 방법 은 작업 디 렉 터 리 를 인쇄 하 는 것 입 니 다.동적 입 니 다.(작업 디 렉 터 리 변경 가능)
두 번 째 방법 은 현재 AppDomain 의 기본 디 렉 터 리 를 인쇄 하 는 것 입 니 다.AppDomain 이 변경 되 지 않 으 면 현재 AppDomain 의 기본 디 렉 터 리,즉 응용 프로그램 이름.exe 가 있 는 디 렉 터 리 를 인쇄 합 니 다.
따라서 외부 프로그램 을 시작 하기 전에 작업 디 렉 터 리 를 외부 프로그램의 작업 디 렉 터 리 로 변경 하고 외부 프로그램 실행 이 끝 난 후에 다시 사용 할 수 있 습 니 다
AppDomain.CurrentDomain.BaseDirectory;
작업 디 렉 터 리 를 원본 기본 디 렉 터 리 로 복원 하여 후속 프로그램의 정상 적 인 실행 을 보장 합 니 다.3.현재 작업 디 렉 터 리 를 외부 프로그램 작업 디 렉 터 리 로 전환
System.IO.Directory.SetCurrentDirectory ( );
// ,
예 를 들 어 현재 C\#가 있 는 프로그램의 경 로 는 C:/Deskop/C\#/bin/Debug/입 니 다.
AppDomain.CurrentDomain.BaseDirectory C:/Deskop/C#/bin/Debug/
( )
호출 된 외부 프로그램 디 렉 터 리 는 C:/Deskop/C\#/bin/Debug/NASM/nasm.exe 는 C:/Deskop/C\#/bin/Debug/NASM/nasm.exe 에 있 습 니 다.
여기
System.IO.Directory.SetCurrentDirectory ("C:\\Deskop\\C#\\bin\\Debug\\NASM\\");
//
// \ ( \\)
System.IO.Directory.SetCurrentDirectory (AppDomain.CurrentDomain.BaseDirectory + "\\NASM");
//
System.IO.Directory.SetCurrentDirectory(System.IO.Directory.GetCurrentDirectory() + "\\NASM");
//
4.원본 작업 디 렉 터 리 복원외부 프로그램 실행 이 끝 난 후에 작업 디 렉 터 리 를 되 돌려 야 합 니 다.AppDomain.CurrentDomain.BaseDirectory 를 빌려 야 합 니 다.
System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
외부 프로그램 이름 설정작업 디 렉 터 리 를 전환 하면 일반 외부 프로그램 이름 은 새 디 렉 터 리 디 렉 터 리 에 있 습 니 다.
process.StartInfo.FileName = "nasm.exe";
// "C:\\Deskop\\C#\\bin\\Debug\\NASM\
asm.exe"
입력 매개 변수 설정프로그램 만 있 으 면 안 되 고 이 프로그램 이 어떤 조작 을 수행 할 지 지정 해 야 합 니 다.이 조작 은 매개 변 수 를 통 해 전 달 됩 니 다.
예 를 들 어 nasm 에서 작업 디 렉 터 리 에 있 는 MySourcesCode 디 렉 터 리 에 있 는 demo 02.asm 컴 파일 링크 를 4.obj 파일 로 생 성 하려 면 nasm 를 열 고 다음 명령 을 입력 해 야 합 니 다.
nasm MySourcesCode/demo02.asm -o MySourcesCode/4.obj
nasm 는 프로그램 이름 입 니 다.뒤에 있 는 것 은 nasm 의 입력 매개 변수 입 니 다.즉,우리 가 설정 해 야 할 것 입 니 다.
process.StartInfo.Arguments = "MySourcesCode\\demo02.asm -o MySourcesCode\\4.obj ";
프로그램 시작,실행 대기,종료
process.Start();
process.WaitForExit();//
process.Close();
전체 코드
Process process = new Process();
process.StartInfo.UseShellExecute = false; //
process.StartInfo.RedirectStandardOutput = true;//
process.StartInfo.RedirectStandardInput = true;//
process.StartInfo.CreateNoWindow = true;
System.IO.Directory.SetCurrentDirectory (AppDomain.CurrentDomain.BaseDirectory + "\\NASM");
// NASM
//Console.WriteLine(System.IO.Directory.GetCurrentDirectory()); //
process.StartInfo.FileName = "nasm.exe";
//
process.StartInfo.Arguments = "MySourcesCode\\demo02.asm -o MySourcesCode\\4.obj ";
//
process.Start(); //
process.WaitForExit();//
process.Close(); //
System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
//NASM
//Console.WriteLine(System.IO.Directory.GetCurrentDirectory()); //
환경 및 실행 캡 처외부 프로그램
외부 프로그램 이 있 는 디 렉 터 리
외부 프로그램 원본 파일대상 파일 이 있 는 디 렉 터 리
C\#외부 프로그램 을 호출 한 후 생 성 된 대상 파일
C\#Process 가 외부 프로그램 을 호출 하 는 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#Process 가 외부 프로그램 을 호출 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.