要获得同一个进程中的某个win form 控件的字体(Font)或者获得其它进程中win32控件字体都已经解决了。
可是对于.Net的控件,我想要获得其它进程的某个win form控件的字体,尝试了很多方法都不行。
有没有高人给个idea?问题:
已知目标控件的hwnd,这个控件为winform控件(例如.Net的TextBox控件),这个控件属于其他程序要求:
获得这个控件的Font
可是对于.Net的控件,我想要获得其它进程的某个win form控件的字体,尝试了很多方法都不行。
有没有高人给个idea?问题:
已知目标控件的hwnd,这个控件为winform控件(例如.Net的TextBox控件),这个控件属于其他程序要求:
获得这个控件的Font
解决方案 »
- C#怎样比较两个xml里节点内容的不同(升级用)
- winform中的form问题
- 初学C#遇到如下几个问题
- 通过索引器获得容器总的元素,但是不能立即修改,求解!
- 帮忙推荐一本好书,不是入门级的,经典一点的。
- 高手救命啊,我的treeview控件装好之好,加载到工具箱,变成灰色的,不能拖动,怎么办?
- 采用vc开发的dll文件如何处理?
- WIN7 64位系统 Xenocode Postbuild 2010 for .NET 失效
- c# winform 怎样用post提交一个请求 具体想实现的功能在内容里面,希望大哥大姐帮帮忙,本人新手
- listview语句怎样写在Form1()之外才有效
- 接口是不是类与类之间互相访问的一种技术?
- 两个独立项目之间的窗体如何调用!!求助!!!
多谢,这是一个我没有尝试过的办法,能不能具体点呢?
我有了控件的hwnd,如何通过VirtualAllocEx+ReadProcessMemory 来获得字体呢?
JSP,ASP和ASP.NET朋友加入,一起研究学习之用!群号:13156076
是用来测试其他程序中控件的文本的长度
有了Font就能确定文本的Size了有人有什么其他的Idea吗?
1.获得窗体句柄,调用FindWindow;
2.获得控件句柄,可以调用EnumChildWindows;
3.通过控件句柄获得hdc,可以调用GetHdc;
4.通过hdc获得Font,调用GetFontData来获得。
谢谢你的帮助,不过对于WinForm控件,无法根据hdc得到font :) 只能试试其它办法了
我通过得到其他应用程序控件上文本的长度,来判断是否有文本因为控件本身的长度而没有被显示出来
如果在同一个进程中,这个方法是可以的,不过不同进程就不能用反射了吧?
是没有问题,要不然怎么可能有反编译工具。
原来你是说把整个exe文件用反射来分析?不过我在程序运行中,只知道某个目标控件的hwnd,这样如何在assembly中定位到这个资源?
况且目标程序在运行中可能改变控件的Font属性,光读原始exe文件是无法知道目前的Font状态的,对不对?
是的
况且目标程序在运行中可能改变控件的Font属性,光读原始exe文件是无法知道目前的Font状态的,对不对?前面部分是没有什么问题,但是我没有考虑到后半部分,有可能调用某个特定的函数去修改Font属性。
http://www.vckbase.com/document/viewdoc/?id=1625