大家都知道TLabel不是从TWinControl继承的,
所以没有句柄,以前有人说TLabel相当于用outtext输出到form上的,
我试了一下,根本不是这么回事。
用金山词霸能取得TLabel控件的字符串,这就证明字符不是画在窗体上的。
但是金山词霸是怎么得到这里面的字符串的呢?

解决方案 »

  1.   

    API HOOK技术
    CSDN早就讨论过的了VCL封装了API,正真实现的部分还是ExtTextOut
      

  2.   

    我对api hook不是很了解,按照你的意思,也就是说金山词霸用hook截获了
    ExtTextOut得api函数了。那请问用Tlabel在form上显示,和直接用ExtTextOut画在form上都是有什么区别?
    既然实现部分都是用的ExtTextOut函数,为什么金山词霸可以取出TLabel的词,却取不出用ExtTextOut画出的词?
      

  3.   

    金山词霸拦截了ExtTextOut函数,窗体上显示文字,调用了ExtTextOut,这样不就知道了,显示的是什么了吗?
      

  4.   

    但是事实上,金山词霸取不出直接用ExtTextOut函数画在窗体上的文字,也就是说label虽然最终实现是用ExtTextOut画到窗体上的,但是这中间肯定还有其他的处理,使得金山词霸能取出这里面的文字。