Q&A

  • 손상된 파일 알아내기
델파이에서 다른 실행파일을 호출하여 실행하려고 합니다.



정상파일인 경우는 이상이 없는데 만약 그 실행파일이 손상된 경우

서버에서 그 파일을 자동으로 다운 받으려고 합니다.



(프로그램)

path := 'c:test.exe';

StrPCopy(P,path);

programhandle := WinExec(P , SW_SHOWNORMAL);



test.exe가 손상된경우 시스템이 아래의 오류메세지를 보여줍니다.



(오류메세지)

프로그램 시작오류

c:test.exe 파일이 손상되었습니다.

파일을 다시 설치한 다음 다시 시작하십시요.



이메세지를 어떻게 델파이에서 인식할수 있는지 알려주세요.



1  COMMENTS
  • Profile
    정지호 2000.07.28 01:40
    최동석 wrote:

    > 델파이에서 다른 실행파일을 호출하여 실행하려고 합니다.

    >

    > 정상파일인 경우는 이상이 없는데 만약 그 실행파일이 손상된 경우

    > 서버에서 그 파일을 자동으로 다운 받으려고 합니다.

    >

    > (프로그램)

    > 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를 참조하시면 될겁니다.



    도움이 되었기를 바랍니다