Q&A

  • 폼안에 다른프로그램넣는거.
var

wnd: HWND;

begin

WinExec( 'Fam.exe', sw_hide );

Sleep( 100 );

wnd := FindWindow( '??', nil ); //실행할 프로그램에 핸들 구하기

Windows.SetParent( wnd, Handle ); //실행프로그램의 부모를 현재폼으로 설정

//노드패드 위치크기 설정

SetWindowPos( wnd, 0, 0, 0, clientwidth, clientheight,

SWP_NOZORDER or SWP_SHOWWINDOW );



end;



이렇게하면 Fam.exe가 실행이 되잖아여..

근데..한가지 궁금한게..

wnd := FindWindow( '??', nil ); //실행할 프로그램에 핸들 구하기

이부분에서여..

??에 해당하는걸 어떤걸 넣어줘야될지...



1  COMMENTS
  • Profile
    최석기 2000.08.23 23:02
    heimdal wrote:

    > var

    > wnd: HWND;

    > begin

    > WinExec( 'Fam.exe', sw_hide );

    > Sleep( 100 );

    > wnd := FindWindow( '??', nil ); //실행할 프로그램에 핸들 구하기

    > Windows.SetParent( wnd, Handle ); //실행프로그램의 부모를 현재폼으로 설정

    > //노드패드 위치크기 설정

    > SetWindowPos( wnd, 0, 0, 0, clientwidth, clientheight,

    > SWP_NOZORDER or SWP_SHOWWINDOW );

    >

    > end;

    >

    > 이렇게하면 Fam.exe가 실행이 되잖아여..

    > 근데..한가지 궁금한게..

    > wnd := FindWindow( '??', nil ); //실행할 프로그램에 핸들 구하기

    > 이부분에서여..

    > ??에 해당하는걸 어떤걸 넣어줘야될지...

    >



    예번에 한번 만들었던 소스가 있네요..



    procedure TForm1.Button1Click(Sender: TObject);

    function FindApp(ClassName: String): boolean;

    begin

    H := FindWindow(PChar(ClassName),nil);

    Result := Boolean(H);

    end;

    begin

    WinExec('C:orawin95BINPlus80w.exe tm/tm@hp_tm',SW_HIDE);

    while not FindApp('SqlplusWClass') do ;

    Windows.SetParent(H, Panel2.Handle);

    ShowWindow(H,SW_SHOW);

    end;



    FindWindow는 파라메터로 첫번째는 클래스명이 오고 두번째는 캡션명이 옵니다.



    ClassName를 알 경우

    H := FindWindow(ClassName,nil);



    프로그램의 캡션명을 알 경우

    H := FindWindow(nil,Caption);