|
무정 님이 쓰신 글 :
: builder에서 만든 프로그램에서 어떤 버튼을 누르면 다른 응용프로그램이 실행이 되게 하려는 데요.. 그냥 응용프로그램만 실행시키는 것이 아니고 그 프로그램에서 사용하는 파일을 읽어오게 하려고 합니다.
:
: 예를 들면 제가 만든 프로그램에서 어떤 버튼을 클릭시 MS-Word가 실행이 되면서 지정된 *.doc가 뜨게 하려는 것입니다.
:
: 그냥 MS-Word만 실행시키려는 것은 아래 방법을 사용하면 되었거든요.
: WinExec("MS-Word가 있는 경로", SW_SHOW); 11
:
오피스 게열의 프로그램을 제어하시려면 OLE오토메이션 객체를 다루실줄
아셔야 합니다.
이런 OLE객체를 다루려면 인터폐이스를 불러와야 하는데...
그방법에는 크게 IDispatch인터폐이스와 가변형변수를 이용하는 속력은 느리지만 사용하기
쉬운 방법이 있고요, 타입라이브러리를 임포팅해서 표준인터폐이스와 듀얼인터폐이스를
이용하는 속력은 빠르지만 사용하기 약간 까다로운 방법 마지막으로 빌더 5.0에서부터
지원하는 Servers탭에 있는 컴포넌트를 이용하는 방법이 있습니다. 이방법 또한 좀 쓰기가
까다롭더라구요...
온라인 상이라서 다가르쳐드릴수는 없고 제일 쉬운 IDispatch인터폐이스와 가변형변수를
이용하는 방법은 아래와 같습니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant WordApp, WordDocs;
WordApp = Variant::CreateObject("Word.Application");
WordApp.OlePropertySet("Visible", true);
WordDocs = WordApp.OlePropertyGet("Documents");
WordDocs.OleFunction("Open", "c:\\Sample.Rtf"); //여기에 원하시는 워드파일의 경로를 설정
}
인클루드문에다가 다음과 같은 헤더파일을 인클루드하세요..
#include <utilcls.h>
#include <Comobj.hpp>
그럼 참고하세요..
|