Delphi跨程序訪問DBGRID

2021-05-18 07:54:09 字數 484 閱讀 9129

此文是根據伴水老大的例項做的小修改!

以下是個人見解,如有錯誤請指正:)

要想跨程序訪問dbgrid,貌似只能用hook,寫乙個dll想辦法注入到目標程序。注入成功後,使dll與目標程序在同一程序空間中(其內有一些細節問題,請參見**),這時可以訪問目標程序的vcl元件。並把vcl元件的資料通過程序通訊的方式發給sniffer程序。

如何進行注入?

可以安裝乙個wh_callwndproc鉤子,這樣當有訊息在視窗函式中時,系統就會裝載hook,即執行dll部分。

如何發訊息?

可以在dll中設定乙個自定義訊息,在安裝完鉤子後,傳送乙個自定義訊息至目標程序的視窗函式。

以下例項可讀出另一程序的edit、label、dbgrid等控制項的值。

如何了解這個原理,跨程序讀取stringgrid等控制項也並非難事!

//dll單元1

//dll單元2

sniffer程式

全部**

關於 RemoteViews 跨程序資源訪問的勘誤

看到 android開發藝術探索 書中 p241 頁提到remoteviews跨程序資源訪問的限制,我在跨程序的實際使用時,證實是沒有限制的,可以跨程序使用,remoteviews原始碼如下 public remoteviews string packagename,int layoutid 複製 ...

wince 窗體跨程序通訊

wince要實現訊息接收需要繼承microsoft.windowsce.forms.messagewindow類 public class custommessagewindow microsoft.windowsce.forms.messagewindow dllimport coredll.dl...

android inject 二 跨程序注入

如果不知道注入是怎麼回事兒,轉戰android inject 一 ptrace基礎,本篇由第一篇轉變而來。本篇提供兩個demo,一是程序demo,二是注入demo 一 程序demo 被注入到程序demo include include include include include include ...