API函数FindWindow

作者在 2011-04-15 11:02:08 发布以下内容
函数型:HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);
功能:该函数返回一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口,在查找时不区分大小写。
参数:
     lpCalssName:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果这个参数是一个成员,那么它必须是一个在调用此函数前已经通过 GlobalAddAtom 函数产生的全局成员。该成员为16位,必须被放置在 lpClassName的 低位字节中,lpClassName的高位字节置零。
     lpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。
返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄,如果函数失败,返回值为Null
 
示例:如已经打开了一个名为001.txt的文本文档,获取该文档窗口的句柄
'API函数声明
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Command1_Click()

    Dim handle As Long
    '指定类名和窗口名,获得句柄
    handle = FindWindow("notepad", "001.txt - 记事本")
    MsgBox handle

    '指定类名,不指定窗口名。表示字符串为空,此处应使用vbNullString
    handle = FindWindow("notepad", vbNullString)
    MsgBox handle

    '指定窗口名,不指定类名
    handle = FindWindow(vbNullString, "001.txt - 记事本")
    MsgBox handle

End Sub
VB6技术学习 | 阅读 3478 次
文章评论,共4条
李臣
2011-04-15 18:31
1
用这个函数可以获得指定窗口的句柄,比如飞信,QQ聊天窗口,但是该怎么获得其中文本框的句柄,把其中的文本内容提取出来呢?
wei855198(作者)
2011-04-16 16:35
2
<div class="quote"><span class="q"><b>李臣</b>: 用这个函数可以获得指定窗口的句柄,比如飞信,QQ聊天窗口,但是该怎么获得其中文本框的句柄,把其中的文本内容提取出来呢?</span></div>这方面我也比较菜,没写过这样的代码。<br />
又在网上搜索了许多资料,现行版本的QQ其中的文本框是没有句柄的,不能够通过句柄控制得到其中的文本内容。至于其它方法,没有深入研究,也没有什么好的思路。<br />
如果兄弟有什么心得和高见,请一定要指教下啊。
李臣
2011-04-16 18:40
3
呵呵,大哥过谦了,其实小弟更菜,vb就没学几天,我在院里申报了一个创新创业项目,其中的一个关键技术就是把飞信文本框的内容提取出来,当时报时没好好调研,后来在网上搜了很久也没找到可行的方案,眼看项目就要中期汇报了,真是急人呀,偶然搜到模拟鼠标选择复制粘贴操作的方案,现在还在研究中....,大哥要是在这方面有新发现的话,记得通知小弟一下啊,不胜感激
wei855198(作者)
2011-04-16 21:37
4
<div class="quote"><span class="q"><b>李臣</b>: 呵呵,大哥过谦了,其实小弟更菜,vb就没学几天,我在院里申报了一个创新创业项目,其中的一个关键技术就是把飞信文本框的内容提取出来,当时报时没好好调研,后</span></div>虽然QQ中的文本框没有句柄,飞信文本框却有句柄,是可以通过API函数提取到其中的文本的。飞信消息对话框中共有三个FxRichEdit类的文本框,提取文本时全部提取或是提取某一个?如果仅提取其中一个的话,用什么相的机制或者条件来筛选还没想好。不如你加我QQ41282692,抽时间讨论讨论
游客请输入验证码
浏览95084次
最新评论