델파이에서 api를 이용 밖에있는 exe를 실행하려고 합니다.
그전에는
winexec('NQ84011.exe',sw_showdefault);
라고 쓰니 (지금도) 실행이 되더군요.
헌데 win32에서는 createprocess를 쓰라고 되어있더군요.
그래서 알지도 못하면서
si : Startupinfo;
pi : PROCESS_INFORMATION; 선언하고
(위에서도 type...record로 죽 구조선언)
CreateProcess('NQ84011',nil,nil,nil,False,0,nil,nil,si,pi);
라고 쓰니 죽어도 안되고 개기는군요? 뭐 실인자하고 가상인자가 안맞는다나요.
빨랑들^^ 도와주세요~~~~
>
> 델파이에서 api를 이용 밖에있는 exe를 실행하려고 합니다.
>
> 그전에는
>
> winexec('NQ84011.exe',sw_showdefault);
>
> 라고 쓰니 (지금도) 실행이 되더군요.
>
> 헌데 win32에서는 createprocess를 쓰라고 되어있더군요.
>
> 그래서 알지도 못하면서
>
> si : Startupinfo;
> pi : PROCESS_INFORMATION; 선언하고
>
> (위에서도 type...record로 죽 구조선언)
>
> CreateProcess('NQ84011',nil,nil,nil,False,0,nil,nil,si,pi);
>
> 라고 쓰니 죽어도 안되고 개기는군요? 뭐 실인자하고 가상인자가 안맞는다나요.
>
> 빨랑들^^ 도와주세요~~~~
>
안녕하세요?
심동훈입니다.
ShellExecute를 쓰시는 게 낫겠네요.
ShellExecute(GetDesktopWindow, 'open', PChar('NQ84011.EXE'), nil, nil,
SW_SHOWNORMAL);
그렇게 사용하시면 되고,ShellExecute의 구조설명은
HANDLE ShellExecute(hwnd, lpszOp, lpszFile, lpszParams, lpszDir, wShowCmd);
HWND hwnd; {부모 원도우의 핸들}
LPSTR lpszOp; {처리하는 방법, 'open' 과 'print' 두 가지가 있으며 생략하면 "open"}
LPSTR lpszFile; {처리할 파일명}
LPSTR lpszParams; {처리시 application에 넘겨줄 파라미터}
LPSTR lpszDir; {작업 디렉토리}
WORD wShowCmd; {실행시 윈도우의 상태}
여기까지입니다.
즐거운 하루 보내세요.