我现在遇到一个问题。我想监控数控铣床刀补值设置。数控铣床软件中有文本框作为输入,按回车键后,将文本框内的数据写入刀补值表格中,文本框内的数值清空。我想做一个vb6程序,监控输入值是否在范围内。请问如何实现?最好有源码。

解决方案 »

  1.   

    首先你要获取到该控件的类型(可以用spy++查看到),
    其次你要根据类型用FindWindowEx获取数据所在控件的句柄,
    最后用API函数GetWindowText或者SendMessage获得需要的内容
      

  2.   

    用Spy4Win软件,鼠标拖动狗头到要读取内容的文本框上,可以得到对应VB源代码片断。
      

  3.   

    用到 3 个 API 函数。下面是将数据写到外部程序(记事本)窗口的例子:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_PASTE = &H302
    Private Const WM_SETTEXT = &HCPrivate Sub Command1_Click()
        Dim TemphWnd As Long
        
        TemphWnd = FindWindow("Notepad", vbNullString)
        TemphWnd = FindWindowEx(TemphWnd, 0, "Edit", vbNullString)
        If TemphWnd Then
            ''-- 将Text1中的文本粘贴到记事本
            'VB.Clipboard.SetText Text1.Text
            'SendMessage TemphWnd, WM_PASTE, 0, ByVal 0&
            
            '把记事本的内容设置为Text1中的文本
            SendMessage TemphWnd, WM_SETTEXT, 0, ByVal CStr(Text1.Text)
            
        End If
        
    End Sub注意:
    Private Const WM_GETTEXT = &HD
    Dim buf(256) As Byte, length As Longlength = SendMessage(TemphWnd, WM_GETTEXT, 255, buf)
      

  4.   

    网上搜下,一大堆的,总体来说就是sendmessage
      

  5.   

    问题是这样的。
    有一个软件界面,上面有许多按钮、列表、表格、文本框等。在主界面中有一个激活的文本框,另外有一个窗体。每次选中窗体内的项目,在文本框内输入数值,软件会把文本框内的数值改写到所选的项目中。
    我现在要检测其中一个表格(他的属性值SS32x25_spread;位置400,283),这个表格在一个tabstrip中(他的属性值为Afxwnd40;位置329,99;标题名“工具径”;另一个不需要检测的标题名为“工具长”),这个tabstrip在窗体中(属性值ThunderRTForm;位置280,75;标题名“补正资料”)。
    正常操作。按F1、F2、F4、F5、F6、F7、F8会跳转到别的界面,只有按下F3键才有可能转到需要的界面(F3键可跳转好几个界面,其中一个是我需要的)。然后用鼠标选中要更改的项(也可以不点鼠标,默认为第一个值或者以前选中的项);输入数值(软件会自动把输入的值放到指定的文本框内,就是我想检测的那个);回车后,软件将文本框内的数值转移到所选的项目上,并将文本框清空,完成更改。
    我现在想做的,就是在输入完数据后,按下回车键之前,检测输入数据是否合理。有错误要提示、最好是禁止更改要更改项。有不明白的可以问,希望大家给我帮助!谢谢!!!
      

  6.   

    是不是得用winio.dll?有高手提供原程序吗?