已知道其他程序的DBGrid的句柄,如何读出数据?

stbigcrab 2007-04-11 11:17:28
谢谢,如题目。
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2007-04-11
  • 打赏
  • 举报
回复
设计思路:需要注入到目标进程,Create一个隐藏窗口,然后通过消息控制这个窗口(这个窗口和DBGrid在同一进程),获取到DBGrid的实例指针,然后就可以读取其数据,再通过消息的方式将获取的数据回传给调用者。

可以参考大富翁上的笔记,有Delphi的现成代码。

BTW: Spy4Win将会加入这个功能。
ccrun.com 2007-04-11
  • 打赏
  • 举报
回复
目前版本的Spy4Win尚不能读取Grid窗口,下一个版本将会加入这些功能,同时提供更多对VCL窗口的支持。
withcsharp 2007-04-11
  • 打赏
  • 举报
回复

dbgrid 可以 不过比较麻烦 listview 就好办 多了
一般vc 到比较好 对付。

我是拦截 api
TSpyDrawTextA = function(hDC:HDC; lpString:PChar; nCount:Integer;
var lpRect:TRect; uFormat:UINT):Integer; stdcall;

TSpyDrawTextW = function(hDC:HDC; lpString:PWideChar; nCount:Integer;
var lpRect:TRect; uFormat:UINT):Integer; stdcall;

TSpyExtTextOutA = function(DC:HDC; X, Y:Integer; Options:Longint;
Rect:PRect; Str:PAnsiChar; Count:Longint; Dx:PInteger):BOOL; stdcall;

TSpyTextOutA = function(DC:HDC; X, Y:Integer; Str:PAnsiChar; Count:Integer):BOOL; stdcall;

TSpyBeginPaint = function(hWnd:HWND; var lpPaint:TPaintStruct):HDC; stdcall;

TSpyEndPaint = function(hWnd:HWND; const lpPaint:TPaintStruct):BOOL; stdcall;
stbigcrab 2007-04-11
  • 打赏
  • 举报
回复
测试了,可以得到句柄等等
就是怎么读还是要研究下,妖版主的Spy4Win读取Edit控件内容方法,能不能套用到dbgrid方面来?
stbigcrab 2007-04-11
  • 打赏
  • 举报
回复
谢谢老妖斑竹指点。
注入目标进程因为可以参考妖版主的网站代码,很容易就实现,主要遇到了读出dbgird数据的难题。我来再研究下,多思考能提高水平,^_^,不懂等会再来请教.

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧