Q&A

  • 파일 업데이트 관련 하여...
먼저 제가 할려구하는 건

client실행파일 실행 -> client 실행파일과 server 실행파일 의 날짜 비교 ->

client 실행파일이 구버전일경우 server에 update.exe를 실행하여 실행 파일을 업데이트

문제는 client에서 실행중일 파일이 종료가 되어야 server 파일을 복사하는데 client 실행파일을 종료할수가 없어 이렇게 글을 올립니다.

update 실행하는 exe 는 따로 구현했습니다. 단독으로 실행하면 별문제가 없는데 실행 파일이 열려있는 상태에서 하면 에러가 납니다.

제가 시도한 방법은
closefile 과 halt 명령등을 사용해 보았습니다.

halt 의 경우는 프로그램은 종료되나 그 하위 코드가 실행되지 않습니다.
//  실행.exe에서 코딩, update.exe 가 실행안됨

closefile은 제가 잘못 자용하였는지 에러가 자꾸 납니다.

   AssignFile(F,Ed_target.Text);  // Ed_target 에는 client 경로가 있음
   CloseFile(F)  //update.exe에 코딩

별볼일 없는 넘이 이렇게 글을 또 올립니다.
조언 부탁드립니다.
1  COMMENTS
  • Profile
    김수경 2002.09.12 01:39
    자신(Form)을 종료하려면
      Close
    하면 됩니다.

    그외 다른 프로그램(Process)를 죽이려면
    그 Process의 Handle을 구한 후
    TerminateProcess를 사용해서 죽일 수 있습니다. Windows API 구여~,

    사용법은
      BOOL TerminateProcess(
        HANDLE hProcess, // handle to the process
        UINT uExitCode          // exit code for the process
       );

    입니다.

    글구 타 프로그램(예를들면 Update.Exe)을 실행하려면
    CreateProcess 또는 WinExec 라는 Windows API를 사용하시면 됩니다
    (CreateProcess 사용을 권장).

    prototype은
      BOOL CreateProcess(
        LPCTSTR lpApplicationName,        // pointer to name of executable module
        LPTSTR lpCommandLine,        // pointer to command line string
        LPSECURITY_ATTRIBUTES lpProcessAttributes,        // pointer to process security attributes
        LPSECURITY_ATTRIBUTES lpThreadAttributes,        // pointer to thread security attributes
        BOOL bInheritHandles,        // handle inheritance flag
        DWORD dwCreationFlags,        // creation flags
        LPVOID lpEnvironment,        // pointer to new environment block
        LPCTSTR lpCurrentDirectory,        // pointer to current directory name
        LPSTARTUPINFO lpStartupInfo,        // pointer to STARTUPINFO
        LPPROCESS_INFORMATION lpProcessInformation         // pointer to PROCESS_INFORMATION
       );

    입니다.

    기타 자세한 사용예는 "묻고 답하기" / "예전의 질답 게시판으로 가기"에서 검색해 보시기 바랍니다.