麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

綁架窗體之Delphi版

2019-11-18 18:26:26
字體:
來源:轉載
供稿:網友
 

“綁架窗體”:顧名思義,就是將其它應用程序甚至系統程序的窗體活生生地拖進本程序的窗體內。這種未征得其它程序同意的強行“綁架”行為在某些場合下卻能發揮出非常獨特的作用。本文將討論“綁架”窗體的技術及應用,并給出了一個完整的“強盜”程序的例子。
從技術上講,為了實現“綁架”,“強盜”程序中必須要有一個 MDIForm對象。


實現“綁架”的第二個條件,是必須知道被“綁架”窗體的句柄。做到這一點并不難。比如,當鼠標在屏幕上滑動時,我們可以用 API函數GetCursorPos來獲得鼠標指針的當前位置坐標,然后用另一個 API函數 WindowFromPoint來獲得指定點窗口的句柄?;蛘呤褂肍indWindow獲得窗口句柄。
有了上述兩個條件,“強盜”程序就可以開始實施“綁架”了:首先用 API函數GetWindow 的GW_CHILD命令來尋找本程序第一個子窗口的句柄;然后用另一個 API函數 SetParent為被“綁架”窗體指定一個“新父”,即指向上面的子窗口的句柄。立刻,兩個原本毫無關系的窗體具有了“父子”關系:被“綁架”窗口出現在“強盜”窗體內部!
二、“綁架”的安全性
不分青紅皂白地進行“綁架”是非常危險的。但只要遵守以下兩個原則就可以保證安全性:
第一,在關閉“強盜”程序之前,把被“綁架”窗體用 SetParent函數“釋放”掉,即恢復被“綁架”者的原來的“父親”。
第二,不要“綁架”系統窗口。系統窗口一般有:任務欄窗口、按下“開始”產生的窗口、按下“Ctrl+Alt+Del”產生的窗口,點擊鼠標右鍵產生的窗口,等等。
綁架”技術在VB中有廣泛的應用,例如,可在程序運行中將控件置入容器控件內部(比如將一個按鈕設成圖象或窗體控件的子窗口),或者將控件從一個容器移至窗體中的另一個。


代碼:
在窗體的PRivate中定義  
hwndOldParent:HWND;
    hwndNotePad:HWND;

將窗口的FormStyle設為fsMDIForm

procedure TForm1.Button1Click(Sender: TObject);
begin
hwndNotePad:=FindWindow(PChar('Notepad'),0);
hwndOldParent:=GetParent(hwndNotePad);
Windows.SetParent(hwndNotePad,handle);

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Windows.SetParent(hwndNotePad,hwndOldParent);
end;

更多請見:http://lincosoft.go.nease.net/


上一篇:DELPHI基礎開發技巧

下一篇:Delphi中動態鏈接庫(DLL)的建立和使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: www视频免费观看 | 欧美亚州 | 久久草在线视频 | 国产精品久久99精品毛片三a | 手机国产乱子伦精品视频 | 色综合久久久久久 | 精品国产一区二区三区在线 | 在线成人www免费观看视频 | 国产美女白浆 | 成人免费毛片在线观看 | 免费观看一级黄色片 | 日日草夜夜操 | 国产成人高清成人av片在线看 | 精品中文字幕在线播放 | 一级α片免费看刺激高潮视频 | 国产一区精品在线观看 | 成人午夜免费av | 亚洲福利在线视频 | 久草在线观看福利 | 国产精品一区二区三区在线看 | 国内精品免费一区二区2001 | 国产在线一级视频 | 欧美大电影免费观看 | 精品亚洲一区二区 | 欧美一级特黄aaaaaaa什 | 久久国产精品99久久人人澡 | 精品影视一区二区 | 青青国产在线视频 | 国产亚洲精品久久久久5区 男人天堂免费 | 久久成人在线观看 | 久久精品一区二区三区四区五区 | 粉嫩蜜桃麻豆免费大片 | 毛片免费在线观看 | 亚洲第一综合色 | 91成人在线网站 | 欧美91看片特黄aaaa | 国产女做a爱免费视频 | 久久久经典视频 | 久久久婷婷一区二区三区不卡 | 看免费一级毛片 | 日韩剧情片|