用FindWindow 取得另外一个程序的句柄,FindWindowEx取得text框的句柄
用SendMessage发送消息。不是黑什么人吧?

解决方案 »

  1.   

    Private Const WM_GETTEXTLENGTH = &HE
    长度=SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0)Private Const WM_GETTEXT = &HD
    SendMessage hWnd, WM_GETTEXT, 长度, ByVal 字符缓冲区Private Const WM_SETTEXT = &HC
    SendMessage hWnd, WM_SETTEXT, 0, ByVal 字符缓冲区
      

  2.   

    http://www.mvps.org/vbnet/
    有大量的API介紹﹐及相應的源代碼例子
      

  3.   

    我不是黑什么人,而是单位里要做这样的程序,
    因为要把数据库内的数据输入B/S程序或者C/S程序的窗体内,
    以前是手工录入,现在是要自动录入,
    所以请教大家!
    另外想问一下,你上面说的,对于IE或者其他Windows程序,都适用吗?
    或者说如果窗体上有N个text,怎么处理?如何模拟点击窗体上菜单,
    command按钮?
    dbcontrols(泰山__抛砖引玉) , playyuer(女㊣爱),你们都是高手,
    不知道能否给我一段源代码?万分感谢你们的帮助!谢谢了!
      

  4.   

    在 win2k 下, 可能会 有点问题 .:(
      

  5.   

    http://go8.163.com/aijun/document/0017.zip
    2001.04.02 [软件报] - 通过实例学习窗口函数-取得IE地址栏的地址
      

  6.   

    Appactive “标题文本“
    sendkeys ”文本“,true
      

  7.   

    只要能够用键盘操作的程序都可以用SendKeys搞定:先用AppActive激活程序,在各个控件中切换的热键是Tab键(在Sendkeys中写成{TAB}),给你看看MSDN中SendKeys的说明:
     
    SendKeys 语句
          将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。语法SendKeys string[, wait]SendKeys 语句的语法具有以下几个命名参数:部分 描述 
    string 必需的。字符串表达式,指定要发送的按键消息。 
    Wait 可选的。指定等待方式的 [email protected] 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。 
    说明每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码:按键 代码 
    BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP} 
    BREAK {BREAK} 
    CAPS LOCK {CAPSLOCK} 
    DEL or DELETE {DELETE} 或 {DEL} 
    DOWN ARROW {DOWN} 
    END {END} 
    ENTER  {ENTER}或 ~ 
    ESC {ESC} 
    HELP {HELP} 
    HOME {HOME} 
    INS or INSERT {INSERT} 或 {INS} 
    LEFT ARROW {LEFT} 
    NUM LOCK {NUMLOCK} 
    PAGE DOWN {PGDN} 
    PAGE UP {PGUP} 
    PRINT SCREEN {PRTSC} 
    RIGHT ARROW {RIGHT} 
    SCROLL LOCK {SCROLLLOCK} 
    TAB {TAB} 
    UP ARROW {UP} 
    F1 {F1} 
    F2 {F2} 
    F3 {F3} 
    F4 {F4} 
    F5 {F5} 
    F6 {F6} 
    F7 {F7} 
    F8 {F8} 
    F9 {F9} 
    F10 {F10} 
    F11 {F11} 
    F12 {F12} 
    F13 {F13} 
    F14 {F14} 
    F15 {F15} 
    F16 {F16} 
    为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:按键 代码 
    SHIFT + 
    CTRL  ^ 
    ALT % 
    为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTSC} 发送到任何应用程序。
      

  8.   

    'FindWindow 的使用例程  找到窗口后,再用SendMessage Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongDeclare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Const WM_CLOSE = &H10以下之范例示范如何关闭一个视窗标题 (Caption) 为 【小算盘】的程序:Dim winHwnd As Long
    Dim RetVal As Long
    winHwnd = FindWindow(vbNullString, "小算盘")
    Debug.Print winHwnd
    If winHwnd <> 0 Then
    RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
    If RetVal = 0 Then
    MsgBox "Error posting message."
    End If
    Else
    MsgBox "并未开启小算盘程序."
    End If 
      

  9.   

    FindWindow
    The FindWindow function retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search. HWND FindWindow(
      LPCTSTR lpClassName,  // pointer to class name
      LPCTSTR lpWindowName  // pointer to window name
    );
     
    Parameters
    lpClassName 
    Pointer to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to theGlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpClassName; the high-order word must be zero. 
    lpWindowName 
    Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match. 
    Return Values
    If the function succeeds, the return value is a handle to the window that has the specified class name and window name.If the function fails, the return value is NULL. To get extended error information, callGetLastError. Res
    Windows CE: If lpClassName is an atom, it must be an atom returned from RegisterClass.QuickInfo
      Windows NT: Requires version 3.1 or later.
      Windows: Requires Windows 95 or later.
      Windows CE: Requires version 1.0 or later.
      Header: Declared in winuser.h.
      Import Library: Use user32.lib.
      Unicode: Implemented as Unicode and ANSI versions on Windows NT.See Also
    Windows Overview, Window Functions, EnumWindows, FindWindowEx, GetClassName,GlobalAddAtom  
      

  10.   

    FindWindowEx
    The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the given child window. This function does not perform a case-sensitive search. HWND FindWindowEx(
      HWND hwndParent,      // handle to parent window
      HWND hwndChildAfter,  // handle to a child window
      LPCTSTR lpszClass,    // pointer to class name
      LPCTSTR lpszWindow    // pointer to window name
    );
     
    Parameters
    hwndParent 
    Handle to the parent window whose child windows are to be searched. 
    If hwndParent is NULL, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop. Windows NT 5.0 and later: If hwndParent is HWND_MESSAGE, the function searches all message-only windows. hwndChildAfter 
    Handle to a child window. The search begins with the next child window in the Z order. The child window must be a direct child window of hwndParent, not just a descendant window. 
    If hwndChildAfter is NULL, the search begins with the first child window of hwndParent. Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level and message-only windows. lpszClass 
    Pointer to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to theGlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpszClass; the high-order word must be zero. 
    lpszWindow 
    Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match. 
    Return Values
    If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL. To get extended error information, callGetLastError. QuickInfo
      Windows NT: Requires version 4.0 or later.
      Windows: Requires Windows 95 or later.
      Windows CE: Unsupported.
      Header: Declared in winuser.h.
      Import Library: Use user32.lib.
      Unicode: Implemented as Unicode and ANSI versions on Windows NT.See Also
    Windows Overview, Window Functions, EnumWindows, FindWindow, GetClassName,GlobalAddAtom  
      

  11.   

    SendMessage
    The SendMessage function sends the specified message to a window or windows. The function calls the window procedure for the specified window and does not return until the window procedure has processed the message. The PostMessage function, in contrast, posts a message to a thread's message queue and returns immediately. LRESULT SendMessage(
      HWND hWnd,      // handle of destination window
      UINT Msg,       // message to send
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );
     
    Parameters
    hWnd 
    Handle to the window whose window procedure will receive the message. If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system, including disabled or invisible unowned windows, overlapped windows, and pop-up windows; but the message is not sent to child windows. 
    Msg 
    Specifies the message to be sent. 
    wParam 
    Specifies additional message-specific information. 
    lParam 
    Specifies additional message-specific information. 
    Return Values
    The return value specifies the result of the message processing and depends on the message sent. Res
    Applications that need to communicate using HWND_BROADCAST should use the RegisterWindowMessage function to obtain a unique message for inter-application communication.If the specified window was created by the calling thread, the window procedure is called immediately as a subroutine. If the specified window was created by a different thread, the system switches to that thread and calls the appropriate window procedure. Messages sent between threads are processed only when the receiving thread executes message retrieval code. The sending thread is blocked until the receiving thread processes the message. Windows CE: Windows CE does not support all the messages the desktop Windows platforms support. Before using SendMessage, check to make sure the message you are sending is supported.QuickInfo
      Windows NT: Requires version 3.1 or later.
      Windows: Requires Windows 95 or later.
      Windows CE: Requires version 1.0 or later.
      Header: Declared in winuser.h.
      Import Library: Use user32.lib.
      Unicode: Implemented as Unicode and ANSI versions on Windows NT.See Also
    Messages and Message Queues Overview, Message and Message Queue Functions, InSendMessage, PostMessage, RegisterWindowMessage, SendDlgItemMessage  
      

  12.   

    怎么都是API 声明呀? 没有代码吗?
    你们在 win2k 下,试过了吗?
      

  13.   

    看来VB论坛的朋友们没有人会了,最后截至4.6日,如果没有人回答出来,
    我只好打算在VC论坛里求救了!
      

  14.   

    Normally , it will not have a good source code for you , you have to use api yourself , so good luck!
      

  15.   

    heyijpn(小何) 怎么还说没人帮你,我都告诉你用SendKeys就可以了,而且我就用它做过类试的东西:在VB中通过模拟键盘输入操作另一个应用程序。