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 가 외부 프로그램 을 호출 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기