能不能屏蔽控件的句柄

xiedewei 2009-07-07 01:58:10
能不能屏蔽窗体上所有控件的句柄,不让Spy++之类的软件获取到。
就像所有控件都是无句柄的控件(实际上有句柄)。请问如何做到?
...全文
116 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiedewei 2010-04-10
  • 打赏
  • 举报
回复
有没有人用过Opera浏览器,不知道它是怎么做到的。
ccrun.com 2009-07-17
  • 打赏
  • 举报
回复
用DirectUI技术。类似MSN和QQ2009的效果。
ysai 2009-07-17
  • 打赏
  • 举报
回复
不知道楼主的目的是什么?不让外部程序通过句柄操作你的控件?
如果不让外部程序获取句柄,可以试试HOOK句柄相关的API,如WindowFromPoint
如果只是不让操作,可以子类化控件,屏蔽某些消息
xiedewei 2009-07-17
  • 打赏
  • 举报
回复
to modaoshi3002 恐怕没有像你这样用Timer画界面的
modaoshi3002 2009-07-15
  • 打赏
  • 举报
回复
在内存里(imgDraw)先画一次,然后再贴到界面上,双缓冲。
modaoshi3002 2009-07-15
  • 打赏
  • 举报
回复

//如果对界面绘画要求不高,可以考虑用个计时器,设定一个小间隔,然后在timer事件中使用bitblt来绘画
//如果设为50ms一次,那么一秒钟也有20帧左右了。效果还是可以的,兄弟分少,楼主多给点。
procedure TFrmMain.TimerDrawTimer(Sender: TObject);
var
i: Integer;
begin
//用主界面图恢复软件界面
BitBlt(imgDraw.Canvas.Handle, 0, 0, 800, 600, imgMain.Canvas.Handle, 0, 0, SRCCOPY);
//把各控件画到 imgDraw上去。
drawControls1;
drawControls2;
drawControls3;
drawControls4;
drawControls5;
drawControls6;
//最后把 imgDraw 画到主画面上去
BitBlt(self.Canvas.Handle, iLeft, 0, 800, 600, imgDraw.Canvas.Handle, 0, 0, SRCCOPY);
end;
xiedewei 2009-07-14
  • 打赏
  • 举报
回复
谁可以画一个示范一下啊,比如模拟一个TEdit。
分可以加的。
  • 打赏
  • 举报
回复
完全自绘
或者使用DX OpenGL
jiangfx2001 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
现成的控件估计不行了,考虑1楼建议,直接在canvas上画,很好玩的,现在我们的软件,就一个form,什么都没有,全部都是画出来的
[/Quote]

有没有谁做过类似的软件啊,弄个简单点的例子,把源码发上来学习学习啊!
呵呵~
shuihan20e 2009-07-07
  • 打赏
  • 举报
回复
MSN9以后的版本好像就用DX画的
xiedewei 2009-07-07
  • 打赏
  • 举报
回复
MSN全是DX画的吗,聊天窗口都没有使用richedit??好像难度太大了,我不大相信。简单的讲,类似Edit怎么画,要有闪烁光标,要可编辑,谁可以弄一个让大家学习一下。
gyk120 2009-07-07
  • 打赏
  • 举报
回复
很多游戏现在没有办法直接获得句柄截获消息,就是因为DirectX画上去的,句柄没有办法得到
de410 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sz_haitao 的回复:]
控件对象其实就是指针、句柄,没有它,程序自己也无法访问、控制了

只能自己画、写,是没句柄的
[/Quote]
4楼的方法可行~~
starluck 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 CaiBirdy 的回复:]
抛弃gdi,用image画或DX画。。如MSN,skype
[/Quote]

同意
火龙岛主 2009-07-07
  • 打赏
  • 举报
回复
b/s结构?拦截spy++消息!使用钩子?
骑牛上铂金 2009-07-07
  • 打赏
  • 举报
回复
呵呵,帮顶!
bdmh 2009-07-07
  • 打赏
  • 举报
回复
现成的控件估计不行了,考虑1楼建议,直接在canvas上画,很好玩的,现在我们的软件,就一个form,什么都没有,全部都是画出来的
haitao 2009-07-07
  • 打赏
  • 举报
回复
控件对象其实就是指针、句柄,没有它,程序自己也无法访问、控制了

只能自己画、写,是没句柄的
xinxinshou2009 2009-07-07
  • 打赏
  • 举报
回复
很多都会这么想的,既然读取别的程序的控件句柄来获取自己有用的数据,又要防止自己的程序被别人同样的读取。要防止spy++之类的软件,难度不是一般的大,祝楼主好运吧
CaiBirdy 2009-07-07
  • 打赏
  • 举报
回复
抛弃gdi,用image画或DX画。。如MSN,skype

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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