728x90
델파이에서 외부 프로그램을 실행시키고 그 프로그램이 종료대기까지 기다려야 하는 경우 사용법
(예: github에서 그렇듯 commit메세지를 입력받기 위해 메모장을 띄우고 해당 메모장 프로그램이 종료되길 기다리는 경우)
string lExePath //프로그램 풀 경로 c:\work\notepad.exe
lExePath := Trim(lExePath); //정확한 이유는 모르겠지만 공백이 없더라도 이 작업이 필수
if CreateProcess(nil, PWideChar(lExePath), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then
begin
//정상적으로 실행했을경우
with ProcessInfo do
begin
WaitForSingleObject(hProcess, INFINITE); //두번째 파라미터값으로 ms단위 타임아웃대기시간 조절가능
end;
end
else
//실행 실패
*참조
CreateProcess함수 호출시 위와같은 에러가 발생한다면 lExePath := Trim(lExePath); 이 코드를 꼭 동작시켜보길 바란다 추가로 string을 array [0..1023] of WideChar; 이런식으로 변환하여 넣어주어도 정상적으로 작동된다
728x90
'운동하는 개발자 > Delphi' 카테고리의 다른 글
Delphi 2010 Indy 업그레이드 (재설치) (0) | 2023.11.20 |
---|---|
델파이 한글검색, 검색기록 관리 편하게 GEXPERT 설치 (0) | 2022.03.12 |
델파이 크리티컬세션 사용법 / delphi criticalsection (for multiThread) (0) | 2021.11.17 |
델파이 windows10 한글 깨짐 / edit 창 한글 커서 오류 (d2codingfont) (0) | 2021.09.23 |
delphi 각종 윈도우 경로 읽기 get windows path / SHGetSpecialFolderPath (0) | 2021.08.19 |