全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2520
推到 Plurk!
推到 Facebook!

如何使用多個 createprocess 於同一視窗..

尚未結案
chencclen
一般會員


發表:3
回覆:3
積分:1
註冊:2004-09-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-22 12:10:40 IP:211.23.xxx.xxx 訂閱
Greeting, 

我想在使用多個 CreateProcess 後,能夠將視窗指定在為同一個,例如:我以 CreateProcess 呼叫了一個 "WORD" 的 A視窗,而之後我又用CreateProcess 呼叫了另一個 "WORD" 的 B視窗, 但此時我需要將 B視窗放在 A視窗之中 (變成只有一個 'WORD' 主視窗,但有兩個不同的內容) ,如果單純以 WIN API 的方式,應該要如何作, 謝謝!!
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-22 19:54:23 IP:61.222.xxx.xxx 訂閱
指定視窗的ParentWindow
chencclen
一般會員


發表:3
回覆:3
積分:1
註冊:2004-09-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-23 09:55:05 IP:211.23.xxx.xxx 訂閱
謝謝 RootKit 的回覆:
但我上網找了找資料還是無法理解應該要如何實作,能否請 RootKit 大大給個簡單的例子給小弟參考 , 謝謝 !!
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-23 12:24:59 IP:61.222.xxx.xxx 訂閱
1. 先找到 母視窗的Handle ,或者經由 CreateProcess 通知子程式 Parent Handle 的值。
2. 簡單的作法是,在子程式中使用 FindWindow 找到母視窗 在Windows.SetParent




pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-25 14:52:28 IP:122.127.xxx.xxx 訂閱
因一時無法在ktop找到舊的文章, 只好找自己的硬碟庫存,原作者看到,千萬不要打我, 單純提供例子, 若有著作權問題, 我會將其刪除.


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
H1,H2: Hwnd;
begin
// 先執行要放入專案的外部EXE檔案(用隱藏方式來執行)
WinExec('C:\Program Files\TOOLS\MYIE\MyIE.exe',SW_HIDE);
// 再找到該外部EXE檔案
H1 := FindWindow(nil,PChar('MyIE'));
// 假設找到執行之程式後要放在 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;
[/code]
------
努力會更接近成功
系統時間:2024-04-23 21:26:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!