Q&A

  • 원하는 프로세스 죽이기???
넘 초보적인 질문이라 부끄럽군요..근데 초본걸 어떡합니까..

음..할려는 작업은 프로그램에서 엑셀로 저장하는 것입니다..

그래서 프로그램내에서 OLE로 엑셀을 실행시키고, 저장하고, 종료를 시켰는데...

엑셀이 화면상에서 분명히 종료가 되었는데..작업관리자를 띄워보면...

엑셀 프로세스가 계속 살아있는 것입니다..

글고 제 프로그램을 종료하면 그때 비로소 엑셀 프로세스가 사라지죠..

여기까진 문제가 없어 보이는데..결국은 엑셀 프로세스가 없어지니깐요..

근데, 제 프로그램 실행중(엑셀 프로세스가 살아있을때)에는

제가 엑셀을 따로 실행했을때 이상야릇한 죽은 엑셀이 실행됩니다..

그래서, 엑셀 프로세스를 중간에 강제 종료시키려 하는데..

방법을 모르겠군요..어렴풋이 API를 사용해야 한다는 것은 알겠는데..

제가 초보라..API를 안번도 써본적도 없고 사용할줄도 모르거든요..

여러 고수분들...도와주세요...

쉽게 설명해 주시면 더욱 고맙겠습니다...^^;

1  COMMENTS
  • Profile
    류종택 2000.03.22 23:38
    아래는 해당 API의 설명 부분입니다..





    From 류..



    ---------



    The TerminateProcess function terminates the specified process and all of its threads.



    BOOL TerminateProcess(



    HANDLE hProcess, // handle to the process

    UINT uExitCode // exit code for the process

    );





    Parameters



    hProcess



    Identifies the process to terminate.

    Windows NT: The handle must have PROCESS_TERMINATE access. For more information, see Process Objects.



    uExitCode



    Specifies the exit code for the process and for all threads terminated as a result of this call. Use the GetExitCodeProcess

    function to retrieve the process's exit value. Use the GetExitCodeThread function to retrieve a thread's exit value.







    Return Values



    If the function succeeds, the return value is nonzero.

    If the function fails, the return value is zero. To get extended error information, call GetLastError.



    Remarks



    The TerminateProcess function is used to unconditionally cause a process to exit. Use it only in extreme circumstances. The state of global data maintained by dynamic-link libraries (DLLs) may be compromised if TerminateProcess is used rather than ExitProcess.

    TerminateProcess causes all threads within a process to terminate, and causes a process to exit, but DLLs attached to the process are not notified that the process is terminating.



    Terminating a process causes the following:



    1. All of the object handles opened by the process are closed.

    2. All of the threads in the process terminate their execution.

    3. The state of the process object becomes signaled, satisfying any threads that had been waiting for the process to terminate.

    4. The states of all threads of the process become signaled, satisfying any threads that had been waiting for the threads to terminate.

    5. The termination status of the process changes from STILL_ACTIVE to the exit value of the process.







    Terminating a process does not cause child processes to be terminated.

    Terminating a process does not necessarily remove the process object from the system. A process object is deleted when the last handle to the process is closed.



    See Also



    ExitProcess, OpenProcess, GetExitCodeProcess, GetExitCodeThread



    door21 wrote:

    > 넘 초보적인 질문이라 부끄럽군요..근데 초본걸 어떡합니까..

    > 음..할려는 작업은 프로그램에서 엑셀로 저장하는 것입니다..

    > 그래서 프로그램내에서 OLE로 엑셀을 실행시키고, 저장하고, 종료를 시켰는데...

    > 엑셀이 화면상에서 분명히 종료가 되었는데..작업관리자를 띄워보면...

    > 엑셀 프로세스가 계속 살아있는 것입니다..

    > 글고 제 프로그램을 종료하면 그때 비로소 엑셀 프로세스가 사라지죠..

    > 여기까진 문제가 없어 보이는데..결국은 엑셀 프로세스가 없어지니깐요..

    > 근데, 제 프로그램 실행중(엑셀 프로세스가 살아있을때)에는

    > 제가 엑셀을 따로 실행했을때 이상야릇한 죽은 엑셀이 실행됩니다..

    > 그래서, 엑셀 프로세스를 중간에 강제 종료시키려 하는데..

    > 방법을 모르겠군요..어렴풋이 API를 사용해야 한다는 것은 알겠는데..

    > 제가 초보라..API를 안번도 써본적도 없고 사용할줄도 모르거든요..

    > 여러 고수분들...도와주세요...

    > 쉽게 설명해 주시면 더욱 고맙겠습니다...^^;

    • 술친구
    • 2000.03.23 00:51
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍세비
      2000.03.23 02:15
      술친구 wrote: > 안녕하세요.. 술친굽니다. > 제가 질문하고 싶은것은 다름이 아니라 > 윈2000을 깔고 ...
    • 술친구
      2000.03.23 02:58
      그때의 환경은 윈2000 Pro Kor RTM에 델5 Ent 입니다.
    • 권오준
    • 2000.03.22 23:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:34
      Stored Procedure를 작성하셨으면.. TStoredProcedure를 사용하셔서 호출하세요.. From 류.. 권...
    • hee
    • 2000.03.22 23:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:27
      자주 나오는 질문이네요.. 파라메터를 동적으로 SQL문으로 입력하시면.. 아래와 같은 형식으로 각 파라메...
    • hee
      2000.03.23 01:01
      언제 어떻게 해야 하나요? 구체적으로 예를 들어 주실수는 없는지요 류종택 wrote: > 자주 나오는 질문이...
    • 류종택
      2000.03.23 01:22
      아래와 같이 하세요.. From 류.. --------- With Query do Begin sql.add('select ST_C...
    • 델초
    • 2000.03.22 22:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:31
      델파이의 메인메뉴의 환경설정에서 자동저장 중.. Desktop을 지정하시면, 최종 사용하시던 상태로 저장됩...
    • 델초
    • 2000.03.22 22:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:28
      이진 데이타 타입을 이야기 합니다.. 즉 메모나 그림과 같이 사이즈가 일정하지 않은 데이타를.. 필드로 ...
    • 좋은날
      2000.03.23 22:22
      류종택 wrote: > 이진 데이타 타입을 이야기 합니다.. > 즉 메모나 그림과 같이 사이즈가 일정하지 않은 ...
    • door21
    • 2000.03.22 22:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:38
      아래는 해당 API의 설명 부분입니다.. From 류.. --------- The TerminateProcess function ter...
    • 이광민
    • 2000.03.22 21:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 까마귀
      2000.03.23 00:37
      이광민 wrote: > 델파이를 배우는 초보학생인데요 > SQL Explorer에서 SampleMSSQL의 Table을 보려구 하...
    • 염경철
      2000.03.22 22:14
      안녕하세요. 질문내용이 패스워드를 치고 연결을 하시면 되는데 어디서 어떻게 문제가되는지요. 이광...
    • 최용일
      2000.03.22 22:24
      그냥 간단히 폼을 프린트하려면 TForm.Print메소드를 쓰세요. 폼의 클라이언트 영역을 프린트해 줍니다. ...
    • 몽이
    • 2000.03.22 21:39
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이준해
      2000.03.22 23:18
      Source 에서 :fieldName 이라고 적용하셨나요 ? parameter로 전달된 fieldName을 사용하고 싶으시다면 So...
    • 이만준
      2000.03.22 23:16
      안녕하세요 sql.add('select distinct :fieldname from distribute_list'); 이부분을이렇게 고치고요....
    • 초보맨
    • 2000.03.22 21:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      2000.03.22 23:04
      초보맨 wrote: > dbgrid 에 a필드에는 query1의 결과를 b필드에는 query2 의 결과를 > 이렇...
    • 박철
    • 2000.03.22 21:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류한규
      2000.03.23 16:16
      TreeView와 DB를 연동하여 사용함은 어떠할지... 저는 박철님 형태의 자료를 Treeview를 사용하여 조직...
    • 조규춘
      2000.03.22 21:04
      황영철 wrote: > 클릭시 현재 로우값을 알수가 없을까요 > 고수님의 높은 무공은 전수해주시면 > 감사...
    • 조규춘
      2000.03.23 01:37
      죄송 제목 그대로 내가 착각을 했군요! 앞으로 조심을....... 흑흑흑 조규춘 wrote: > 황영철 wrote: ...
    • 황영철
      2000.03.22 21:27
      > property RecNo: Integer; 속성이 있습니다. > > 그러니끼니 > 버튼 클릭시 > form1.caption := ...
    • 최용일
      2000.03.22 21:56
      TStringGrid.Row - 현재 선택된 셀의 Row인덱스입니다. TStringGrid.Col - 현재 선택된 셀의 Column인덱스...
    • Paddy
      2000.03.23 02:27
      procedure TForm.GridClick(Sender: TObject); var Str : String; begin With StringGrid do ...
    • 이재호
    • 2000.03.22 20:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      2000.03.22 22:59
      이재호 wrote: > DLL를 RUNTIME PACKAGE로 만드는 방법과 > 만든후 배포하는 방법을 자세히 > 예제를 ...
    • 이수정
    • 2000.03.22 20:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이수정
      2000.03.22 20:43
      이수정 wrote: > 새로 생성할때 > > (1) Database Driver Name > > -> MSSQL 로 설정해 놓으니....
    • 홍세비
      2000.03.22 21:51
      이수정 wrote: > > BDE 툴에서.. [+]를 누르면요... > > User Name 으로 설정해 놓은.. sa 로 비밀...
    • 조규춘
      2000.03.22 20:41
      이수정 wrote: > 새로 생성할때 > > (1) Database Driver Name > > -> MSSQL 로 설정해 놓으니....
    • 초보
    • 2000.03.22 19:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 허창회
    • 2000.03.22 19:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.03.22 20:23
      허창회 wrote: > rs232 통신을 할려고 하는데 통신 콤포넌트를 어떻게 등록하는지요... > 전 델파이가 첨...
    • 이빈
    • 2000.03.22 19:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      2000.03.22 22:45
      안녕하세요... 아래 쓰신 코드는 컴포넌트 코드이군요... TBitBtn 을 상속받아 새 컴포넌트틀 만든 ...
    • 좋은날
      2000.03.23 22:36
      하소연 wrote: > 안녕하세요 다시 한텔에 도움을 받고자 띄웁니다. > 그동안 이곳 저곳에 32k 이상의 화...