例如我们在开发Excel,如果我们首先得到了Excel的句柄,但是程序中我们要使用的是对象,请问如何转换呢?

解决方案 »

  1.   

    怎么不用vba却用句柄去操作excel?
      

  2.   

    我是在用VB做开发,提到Excel,只是为了举个例子。
      

  3.   

    我也很想知道。以前我获取对象句柄之后,都是通过一些API函数来进行操作。
      

  4.   

    获得的句柄通常用另一个API函数进行调用
      

  5.   

    通过句柄获得对象是一个复杂的Ole枚举功能VB在这方面不见特长,不建议这样写程序。
    如果你的目的是指向调用目标对象(ActiveX对象):在发现目标句柄后,用该句柄获得窗口文本,判断该句柄是否你所想要调用的目标,如果是:根据窗口文本判断类型,例如包含word或者excel等关键字,然后用Vb函数GetObject(,"Word.application"或者"Excell.application")引用目标对象!
      

  6.   

    我想,如果可以通过窗口句柄就可以获得任意整个软件的对象的话,那么
    还有什么软件版权而言。比如,我做了一个软件,不提供外部接口,如果
    你通过我的主程序窗口句柄就可以获得我的窗口对象,你不就可以在不显
    示我的程序的情况下调用我的函数、方法、事件、属性了吗?我想你的想法应该是不可能实现的,但是对于特定的软件或程序是可以的。
    比如IE窗口就提供了可操作的类,当你用 Dim WithEvents 定义了对象后
    便可通过定义的对象响应对象事件,当你用IE的全局对象枚举得到IE的某
    个窗口后将枚举对象负值给事件对象,你将可以相应该IE窗口的事件。
      

  7.   

    用DDE的方法,列举当前的EXCEL对象。
      

  8.   

    回复人: qiurisiyu1(秋日私语) ( ) 信誉:100  2005-1-21 10:11:41  得分: 0  
    ------------------
    又来个“秋日私语”
      

  9.   

    除非窗口类本身支持通过消息返回对象实例,例如RichEdit等
      

  10.   

    请使用ObjectFromLresult API函数