Q&A

  • 정상종료 했는데 프로세스가 살아있어요..어떻게 해야 하져?
제가 이번에는 파워포인터랑 연결을 했는데요...

엑셀이나 워드나 뭐 비슷하더라고요(완전히 똑같지는 않고..)

그런데... 다른(엑셀, 워드)프로그램은 정상 종료(오른쪽위 닫기버튼(X<-- 이렇게 생긴거))를 했을때 프로세스까지 죽는데요...

왜 파워 포인트는 정상 종료 했는데 프로세스가 안죽는 건지...

파워포인트를 닫고 버튼을 눌러서 다시 부르고 그러면 프로세스가 죽지 않아서 이상하게 돌아갑니다...

제가 잘 못 불러 왔는지도 몰라서... 소스 올립니다...

답변 부탁 드리겠습니다.

procedure TForm1.Button1Click(Sender: TObject);

var

Unknown: IUnknown;

Result: HResult;

WinHandle : hwnd;

powerpoint : olevariant;

begin

AppWasRunning := False;

Result := GetActiveObject(CLASS_powerpointApplication, nil, Unknown);

if (Result = 0) then begin

WinHandle := findwindow('pp9FrameClass', nil);

if (WinHandle <> 0 ) then begin

BringWindowToTop(WinHandle);

ShowWindow(WinHandle, SW_RESTORE);

end;

end

else begin

PowerPoint := CreateOleobject('powerpoint.Application');

PowerPoint.Presentations.Add;

PowerPoint.visible := true;

end;

end;



3  COMMENTS
  • Profile
    류응철 2000.06.05 22:51
    류응철 wrote:

    > 제가 이번에는 파워포인터랑 연결을 했는데요...

    > 엑셀이나 워드나 뭐 비슷하더라고요(완전히 똑같지는 않고..)

    > 그런데... 다른(엑셀, 워드)프로그램은 정상 종료(오른쪽위 닫기버튼(X<-- 이렇게 생긴거))를 했을때 프로세스까지 죽는데요...

    > 왜 파워 포인트는 정상 종료 했는데 프로세스가 안죽는 건지...

    > 파워포인트를 닫고 버튼을 눌러서 다시 부르고 그러면 프로세스가 죽지 않아서 이상하게 돌아갑니다...

    > 제가 잘 못 불러 왔는지도 몰라서... 소스 올립니다...

    > 답변 부탁 드리겠습니다.

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > Unknown: IUnknown;

    > Result: HResult;

    > WinHandle : hwnd;

    > powerpoint : olevariant;

    > begin

    > AppWasRunning := False;

    > Result := GetActiveObject(CLASS_powerpointApplication, nil, Unknown);

    > if (Result = 0) then begin

    > WinHandle := findwindow('pp9FrameClass', nil);

    > if (WinHandle <> 0 ) then begin

    > BringWindowToTop(WinHandle);

    > ShowWindow(WinHandle, SW_RESTORE);

    > end;

    > end

    > else begin

    > PowerPoint := CreateOleobject('powerpoint.Application');

    > PowerPoint.Presentations.Add;

    > PowerPoint.visible := true;

    PowerPoint := UnAssigned; // 할당 해제<---- 추가한 부분

    > end;

    > end;

    음... 한줄 추가하니까 끝나더군요....

    어떤 외국사이트 가니까 할당 해제를 해주라고 그래서 했더니 되는데...

    할당 해제 했는데도 에러 안나고 잘 돌아가네요.. 희안하다...쩝...

    왜 그런지 답변 부탁합니다..

  • Profile
    타락천사 2000.06.05 23:31
    안녕하세요.. 타락임다..^^



    쉽지 않고, 남덜이 잘 안하는 일을 하시는군여.^^



    모아서 "델파이 Q&A"에 올려주시면 열쉬미 보겠습니다..^^



    왕초보 타락천사..^^



    참, 오늘 랭귀지팩 이란 글을 올릴껀데 함 보세요..^^



    류응철 wrote:

    > 류응철 wrote:

    > > 제가 이번에는 파워포인터랑 연결을 했는데요...

    > > 엑셀이나 워드나 뭐 비슷하더라고요(완전히 똑같지는 않고..)

    > > 그런데... 다른(엑셀, 워드)프로그램은 정상 종료(오른쪽위 닫기버튼(X<-- 이렇게 생긴거))를 했을때 프로세스까지 죽는데요...

    > > 왜 파워 포인트는 정상 종료 했는데 프로세스가 안죽는 건지...

    > > 파워포인트를 닫고 버튼을 눌러서 다시 부르고 그러면 프로세스가 죽지 않아서 이상하게 돌아갑니다...

    > > 제가 잘 못 불러 왔는지도 몰라서... 소스 올립니다...

    > > 답변 부탁 드리겠습니다.

    > > procedure TForm1.Button1Click(Sender: TObject);

    > > var

    > > Unknown: IUnknown;

    > > Result: HResult;

    > > WinHandle : hwnd;

    > > powerpoint : olevariant;

    > > begin

    > > AppWasRunning := False;

    > > Result := GetActiveObject(CLASS_powerpointApplication, nil, Unknown);

    > > if (Result = 0) then begin

    > > WinHandle := findwindow('pp9FrameClass', nil);

    > > if (WinHandle <> 0 ) then begin

    > > BringWindowToTop(WinHandle);

    > > ShowWindow(WinHandle, SW_RESTORE);

    > > end;

    > > end

    > > else begin

    > > PowerPoint := CreateOleobject('powerpoint.Application');

    > > PowerPoint.Presentations.Add;

    > > PowerPoint.visible := true;

    > PowerPoint := UnAssigned; // 할당 해제<---- 추가한 부분

    > > end;

    > > end;

    > 음... 한줄 추가하니까 끝나더군요....

    > 어떤 외국사이트 가니까 할당 해제를 해주라고 그래서 했더니 되는데...

    > 할당 해제 했는데도 에러 안나고 잘 돌아가네요.. 희안하다...쩝...

    > 왜 그런지 답변 부탁합니다..

  • Profile
    류응철 2000.06.08 21:02
    올려달라고 하신것이 보잘것 없는 것이라 좀더 해본후에 올리겠습니다...



    ㅠ.ㅠ 초보는 서러워...ㅠ.ㅠ