VB.net中通过窗口名称取得后台窗口句柄

下面是VB.net的代码 和VB的区别在于数据类型 vb中long是4byte,vb.net中间Integer是4byte 用的时候写法要互相转换一下 不放心的话可以都写成Int32 
  1. PublicclassForm1
  2. PrivateDeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsstring,ByVallpWindowNameAsstring)AsInteger
  3. PrivateDeclareFunctionfindwindowexLib"user32"Alias"findwindowexA"(ByValhWnd1AsLong,ByValhWnd2AsLong,ByVallpsz1Asstring,ByVallpsz2Asstring)AsInteger
  4. PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsInt32,ByValwMsgAsInt32,ByValwParamAsInt32,ByVallParamAsInt32)AsInt32
  5. PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
  6. DimmyhwndAsInteger
  7. DimsubHwndAsInteger
  8. myhwnd=FindWindow("Notepad","test.txt-メモ�")
  9. subHwnd=findwindowex(myhwnd,"Edit",0)
  10. SendMessage(subHwnd,&H302,0)
  11. 'MsgBox(subHwnd)
  12. EndSub
  13. EndClass
  
  
  1. myhwnd=FindWindow("Notepad","test.txt-メモ�")

FindWindow查找窗口句柄

两个参数,第一个是类名,第二个是窗口的标题,返回值是窗口句柄
不清楚的情况下,两个参数中间的一个可以设成0

   
   
  1. subHwnd=findwindowex(myhwnd,"Edit",0)
findwindowex查找子窗口句柄 4个参数, 第一个是父窗口句柄, 第二个是子窗口次序(父窗口下第几个子窗口), 第三个是子窗口类型, 第四个是子窗口名字
  
  
  1. SendMessage(subHwnd,0)
SendMessage将指定的消息发送到一个或多个窗口 此函数太过于强大,不多做解释
总之消息不是普通的字符串, 而是包括鼠标,键盘等一切消息 这里&H302消息为粘贴到指定句柄

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...