当前位置:编程学习 > VB >>

有个VC写有程序想用VB读取窗口上一个特定LABEL中显示的文本内容

如题,别的控件内容都可以通过句柄读到,LABEL没有句柄不知道有什么别的方法可以快速读到其内容 VB label --------------------编程问答-------------------- OCR识别可以的. --------------------编程问答--------------------
引用 1 楼 chenjl1031 的回复:
OCR识别可以的.


兄弟,太超前了! --------------------编程问答-------------------- 这个题目的阅读理解很困难!
如果你的意思是:VC 程序上有个类似 Label 的文本,VB 程序想取得其文本内容。
请先确认一下是否真的没有句柄。
一般 VC 中的静态文本是有句柄的。 --------------------编程问答--------------------
引用 2 楼 of123 的回复:
引用 1 楼 chenjl1031 的回复:
OCR识别可以的.

兄弟,太超前了!

其实他应该查一下类名是否是Static --------------------编程问答--------------------
引用 1 楼 chenjl1031 的回复:
OCR识别可以的.
@chenjl1031 
大神能不能抽空看看我的问题啊 --------------------编程问答-------------------- 这方面东方兄有经验,但问题的关键在于,OCR的准确率并不高啊。 --------------------编程问答-------------------- API 可以的。但确定哪一个 Label 是你要找的,是个问题:


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Sub Command1_Click()
Dim parent_hWnd As Long, child_hWnd As Long, strText As String, n As Long

    parent_hWnd = FindWindow(vbNullString, "HSEC°²È«UÅÌ¿ØÖÆÈí¼þ")
    
    Do
        child_hWnd = FindWindowEx(parent_hWnd, child_hWnd, "Static", vbNullString)
        
        If child_hWnd = 0 Then Exit Do
        n = GetWindowTextLength(child_hWnd) + 1
        strText = String(n, Space(1))
        GetWindowText child_hWnd, strText, n
        
        MsgBox strText
    Loop
End Sub
--------------------编程问答-------------------- parent_hWnd = FindWindow(vbNullString, "你要找的程序窗口的标签")  --------------------编程问答--------------------
引用 4 楼 chenjl1031 的回复:
引用 2 楼 of123 的回复:
引用 1 楼 chenjl1031 的回复:
OCR识别可以的.

兄弟,太超前了!
其实他应该查一下类名是否是Static


用 Spy++ 找到你的窗口,点开加号,可以看到所有的“控件”。每一行的最后,会有 Button, Edit 或 Static 等类号。 --------------------编程问答--------------------
引用 6 楼 Veron_04 的回复:
这方面东方兄有经验,但问题的关键在于,OCR的准确率并不高啊。

是的,但如果是印刷体的话,识别率就高了!
推荐7楼这个美女的代码。万不得已可以采用以下的:
利用Office2003自带的OCR组件进行文字识别(VB6.0代码) --------------------编程问答-------------------- 推荐使用spy4win软件。 --------------------编程问答-------------------- 我3楼说“静态文本是有句柄”被无视了。
难道要换个无下限的图才比较吸引注意力?
补充:VB ,  API
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,