델파이에서 다른 실행파일을 호출하여 실행하려고 합니다.
정상파일인 경우는 이상이 없는데 만약 그 실행파일이 손상된 경우
서버에서 그 파일을 자동으로 다운 받으려고 합니다.
(프로그램)
path := 'c:test.exe';
StrPCopy(P,path);
programhandle := WinExec(P , SW_SHOWNORMAL);
test.exe가 손상된경우 시스템이 아래의 오류메세지를 보여줍니다.
(오류메세지)
프로그램 시작오류
c:test.exe 파일이 손상되었습니다.
파일을 다시 설치한 다음 다시 시작하십시요.
이메세지를 어떻게 델파이에서 인식할수 있는지 알려주세요.
> 델파이에서 다른 실행파일을 호출하여 실행하려고 합니다.
>
> 정상파일인 경우는 이상이 없는데 만약 그 실행파일이 손상된 경우
> 서버에서 그 파일을 자동으로 다운 받으려고 합니다.
>
> (프로그램)
> path := 'c:test.exe';
> StrPCopy(P,path);
> programhandle := WinExec(P , SW_SHOWNORMAL);
>
> test.exe가 손상된경우 시스템이 아래의 오류메세지를 보여줍니다.
>
> (오류메세지)
> 프로그램 시작오류
> c:test.exe 파일이 손상되었습니다.
> 파일을 다시 설치한 다음 다시 시작하십시요.
>
> 이메세지를 어떻게 델파이에서 인식할수 있는지 알려주세요.
>
winexec로 프로그램을 실행시 아무 이상이 없으면 31보다 큰 값을 return합니다.
실패하면 아래와 같은 값을 반환하죠
Value Meaning
0 The system is out of memory or resources.
ERROR_BAD_FORMAT The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).
ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.
손상과 관련된 값은 ERROR_BAD_FORMAT일것 같네요
if programhandle = ERROR_BAD_FORMAT then
{손상처리}
요렇게 하면 되지 않을까 하네요
테스트는 안해봐서 ..... 자세한것은 win32.hlp를 참조하시면 될겁니다.
도움이 되었기를 바랍니다