Delphi中对word的控制:OleContainer中取得Word的句柄

时间:2021-03-08 17:35:39
随着项目的进展,这个都快成一个系列了,还是希望高手们能够赐教啊,最后项目结束了,肯定会总结一下项目中对Word控制的心得发个贴。

今天的问题是在container激活状态下能够取得word的句柄(如果能取得文档的句柄更好了),然后利用GetDC后截下当前的文档的图。现在的情况是用FindWindow(nil,‘Microsoft Word’)找到窗口句柄后,再利用GetDC截屏后总是截的是整个屏幕的图,好像没有取得word窗口的句柄一般,但是用句柄查看工具找到word的窗口句柄后发现没有错啊...  恨啊

7 个解决方案

#1


在Container状态下,真的能获取Word文档的句柄吗?怀疑!!当然,在Word下是可以取得文档句柄,甚至是文档中图文框的句柄。

#2


那请问如何在word下取得文档的句柄呢?

#3


帮顶。

#4


获取句柄分两种情况:
(1)早期版本,如Office 97/2000 的对象模型中,Application/Windows/Document等对象下都有一个Handle属性(或类似的名称),以此来代表对象的句柄。
(2)现在的版本,Office 2003 以后的版本的对象模型中,已经弱化了Handle,2007中由于XML和Vista的原因,已经看不到Handle了,要从其他的地方想办法。
http://msdn2.microsoft.com/zh-cn/library/microsoft.office.tools.word(VS.80).aspx 
以上地址可以查看到最新的Word对象模型。
(3)你还可以在类似“C:\Program Files\Microsoft Office\Office11\1033”的目录下找到对象模型的帮助文件,当然,前提是你安装了VBA帮助文件。

#5


以下地址说明如何查找和使用Office 帮助文档。
http://support.microsoft.com/kb/222101/zh-cn

#6


十分感谢楼上提供的信息,正在学习中...

#7


等待牛人来答.

#1


在Container状态下,真的能获取Word文档的句柄吗?怀疑!!当然,在Word下是可以取得文档句柄,甚至是文档中图文框的句柄。

#2


那请问如何在word下取得文档的句柄呢?

#3


帮顶。

#4


获取句柄分两种情况:
(1)早期版本,如Office 97/2000 的对象模型中,Application/Windows/Document等对象下都有一个Handle属性(或类似的名称),以此来代表对象的句柄。
(2)现在的版本,Office 2003 以后的版本的对象模型中,已经弱化了Handle,2007中由于XML和Vista的原因,已经看不到Handle了,要从其他的地方想办法。
http://msdn2.microsoft.com/zh-cn/library/microsoft.office.tools.word(VS.80).aspx 
以上地址可以查看到最新的Word对象模型。
(3)你还可以在类似“C:\Program Files\Microsoft Office\Office11\1033”的目录下找到对象模型的帮助文件,当然,前提是你安装了VBA帮助文件。

#5


以下地址说明如何查找和使用Office 帮助文档。
http://support.microsoft.com/kb/222101/zh-cn

#6


十分感谢楼上提供的信息,正在学习中...

#7


等待牛人来答.