向另一個程序(不是我的,任意程序)窗口發送wm_paste消息(200分)

  • 主题发起人 主题发起人 HAZL
  • 开始时间 开始时间
H

HAZL

Unregistered / Unconfirmed
GUEST, unregistred user!
<br>向另一個程序(不是我的,任意程序)窗口發送wm_paste消息<br>我要用我的程序向另一個程序(假定是word,但不一定隻是word)發送一個粘貼消息,<br>以使剪貼板的內容粘貼到目標窗口。現在我隻能取得目標窗口的主窗口句柄。但是我向<br>這個句柄發送消息,沒有粘貼效果。請問我該怎麼做才能取到當前激活哪個子窗口的句柄,<br>我可以遍歷子窗口,但是要怎麼判斷它是不是當然激活的呢?<br><br>
 
你要向Word中的文档窗口,应该先找到该文档窗口.<br>你可以通过EnumWindow或者GetWindow找到之
 
首先要获取该窗口焦点所在位置控件的句柄才可以发消息。
 
我知道先找到窗口。我現在可以找到窗口,也可以發送wm_char.。發了消息word也能顯示我<br><br>發的字符收到,但我怎麼樣讓word(或其它程序)知道發生了一個粘巾事件呢?wm_paste<br><br>消息隻對edit和combox的控件有用,其它的就不行了。如何解決,高手教我<br><br>
 
先查到主窗体,然后用GetWindow查找你要发消息得子窗体:<br><br>function GetWindow(Wnd: hWnd; uCmd: byte): hWnd; <br>Wnd //当前window<br>uCmd //关系标志常数, 取值范围如下 <br>GW_CHILD -- 子窗体<br>GW_HWNDFIRST -- 同级窗体中的最前面的<br>GW_HWNDLAST -- 同级窗体中的最后面的<br>GW_HWNDNEXT -- 下一个<br>GW_HWNDPREV -- 前一个<br>GW_OWNER -- 父窗体
 
TO doxpix<br>&nbsp; 你說的我早都做了,我現在可以取得獲得焦點子窗口的句柄,就是不知道怎麼做才能<br>引發目標軟件產生一個標準“粘貼”動作。
 
用SendMessage发送一个Ctrl+V不行么?
 
我想知道!
 
好象不是所有的軟件“粘貼”熱鍵都是ctrl+v吧
 
大部分是吧。你要针对所有的程序吗?<br>那对每一个特定的程序发送其特定的粘贴快捷键吧。
 
除非我是瘋了,我才會用doxpix的方法。<br>
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
623
import
I
后退
顶部