请教:delphi调用其他应用程序时,直接调用exe还是dll好? |
尚未結案
|
nxwuyong
一般會員 發表:10 回覆:3 積分:2 註冊:2004-09-17 發送簡訊給我 |
|
shinjie
資深會員 發表:12 回覆:275 積分:287 註冊:2003-03-19 發送簡訊給我 |
兩種都可以,如果用dll的話,只要取得Handle 就可以將Form放入你想放的地方。
如果是Exe的話,可以試試以下的範例,需要一個Panel與Buttion procedure TForm1.Button1Click(Sender: TObject);
var
H1,H2: Hwnd;
begin
// 先執行要放入專案的外部EXE檔案(用隱藏方式來執行)
WinExec('C:\WINNT\NOTEPAD.EXE',SW_HIDE);
// 再找到該外部EXE檔案
H1 := FindWindow(nil,PChar('未命名 - 記事本'));
// 假設找到執行之程式後要放在 Panel1
H2 := Panel1.Handle;
// 將外部程式放在 Panel1
Windows.SetParent(H1,H2);
// 設定外部程式顯示的位置及大小
// MoveWindow(hWnd,X,Y,W,H,B) : RETURN BOOL
// hWnd: HWND
// X:Integer; {horizontal}
// Y:Integer; {vertical}
// W:Integer; {the new window width}
// H:Integer; {the new window height}
// B:BOOL; {the repaint flag}
MoveWindow(H1,0,0,Panel1.Width,Panel1.Height,True);
//
Windows.ShowWindow(H1,SW_ShowNormal);
end;
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。 得之;我幸。不得;我命。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |