在VC中寻找某个运行中的VB程序的某个文本框并改变其内容

来源:百度知道 编辑:UC知道 时间:2024/05/20 11:31:14
我是一个VB程序员,略懂VC。现在由于使用NSIS写安装程序并需要在安装前实现一些特殊功能,而需要使用VC来做一个DLL,使用__stdcall写函数接口。该函数将会被NSIS调用,并且会寻找某个运行中的VB窗口,并寻找它的其中一个TextBox,改变其内容。用VC写DLL以及寻找VB窗口的句柄我已有相关的资料,现在我的问题是,由于无法从VB的程序中主动的发送TextBox的句柄给VC的DLL,那么,VC的DLL如何检索出这个指定的TextBox?另一个问题就是,如何改变这个文本框的内容(例如使用SendMessage)?给出实例的,再另加100分!

SendMessage函数完全使用手册
首先 我们了解一下Windows的消息机制。Windows是一个消息驱动式系

统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进

行通信的手段。
举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序

的时候,如果用户单击“文件菜单“里的“新建“命令, 这个动作将被Windows所捕

捉,Windows经过分析得知这个动作应该由我们打开的记事本程序所来处理,然后

Windows就发送个消息 譬如我们编程的时候有时用到的 WM_COMMAND的消息给记

事本,然后记事本就把这个消息处理掉。 这个过程就是消息处理。
接下来,我们把SendMessage的完整形式讲一下
SendMessage
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal

hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As

Long
别名
SendMessageA
说明
调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否

则该函数不会返回

SendMessage所包含4个参数
hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维

护大多数可视对象的句柄
wMsg 用于区别其他消息的常量值,这些常量可以是Windows单元中预定

义的常量,也可以是自定义的常量
wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄