FindExecuteable 이라는 함수가 윈도우 핸들을 얻어오는 함수였던가요?
방법1.
ShellExucteEx대신 CreateProcess 라는 함수를 쓰면 어떨까요?
- CreateProcess 로 실행한후 processid를 가지고 EnumWindow로 윈도우를 찾으면서
찾은 윈두의 processid가 CreateProcess로 실행한 후 받은 processid와 같은지 비교하면 될것같은데요
참조
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=53226
방법2.
ShellExecuteEx로도 processid를 구할수는 있습니다.
ShellExecuteEx를 호출하면서 넘겨준 구조체 SHELLEXECUTEINFO에는 hProcess 라는게 있는데
이 프로세스핸들인 hProcess를 이용해서 프로세스아이디를 구할수 있습니다.
GetProcessId 라는 함수를 이용해서 processid를 구하면 됩니다.
단. GetProcessId라는 함수는 WinXP sp1이상에서만 지원합니다.
http://msdn.microsoft.com/en-us/library/aa383886(VS.85).aspx
그럼..
김문수 님이 쓰신 글 :
: 안녕하세요..^^
:
: ShellExucteEx (?)를 이용해 파일을 실행하고 실행한 파일 윈도우의 핸들값을 얻어오고싶은데요...
:
: 어떻게 해야하는지 잘 모르겠네요('' )a;
:
: 이게 똑같은 프로그램을 여러개 인자값만 다르게 주면서 실행할꺼라서
:
: 프로그램을 실행함과 동시에 핸들값을 얻어와야 할것 같은데요..
:
: FindExecuteable로는 왠지 똑같은 파일을 실행한 거라서 못가져올듯 싶고...('' )a
|