vb 给其他程序传递值问题

用什么方法可以实现VB给其它程序的输入框输入值方法好的加分内似873034970说的意思Hwnd通过一些方法已经找到,但没有窗口命名通过Hwnd发送消息,软件没有反应Se... 用什么方法可以实现 VB给其它程序的输入框输入值
方法好的加分
内似 873034970 说的意思
Hwnd通过一些方法已经找到,但没有窗口命名
通过Hwnd发送消息,软件没有反应
SendMessage 不行啊,无法收到,还有没有他发送方法
展开
 我来答
百度网友4684e1e
2011-06-15 · TA获得超过2309个赞
知道小有建树答主
回答量:1266
采纳率:0%
帮助的人:546万
展开全部
原理:每一个windows窗口都有一个句柄,这就叫做Hwnd。首先有FindWindow这个API找到你所需的窗口,如何传递hwdn或者窗口命名(WindowName),第二步:用SendMessage这个API向所找到的窗口发送消息(详细内容请参考百度百科:windows消息处理机制)。第三步:在vbgood可以查到sendmessage这个API的所需传递值,如下:
Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String)
这个和常规的SendMessage 不同,这个传递值是string。
接下来是实践:
声明API(略)
Public A as String
A=Text1.Text

Private Sub Command1_Click()
k=FindWindow (VbNullString,"无标题 - 记事本")
If FindWindows = 1 Then
MsgBox "找到窗口",48,"提示"
Else
MsgBox "没有找到窗口",48,"提示"
End If
End Sub

Private Command2_Click()
If k=0 Then
MsgBox "没有找到窗口",vbOkonly,"提示"
Else
SendMessage k,0&,SetMessage,A
End If
End Sub
(本人没有测试,思路说了出来,哪里不对的可以百度查查,其实就是两个API的灵活应用)
dana201
2011-06-15 · TA获得超过124个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:73.7万
展开全部
我给你说说原理:
其他程序的输入框有一个hwnd值的
你用api获得输入框的hwnd值
然后用api函数给这个输入框发信息
具体的api函数你从网上找。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2lqj4vpvj
2011-06-15 · TA获得超过1533个赞
知道大有可为答主
回答量:1653
采纳率:0%
帮助的人:551万
展开全部

上半部分和问题都不是一个类型的~

上半部分是传值和传址的问题
加上byval是传值:private function fun (byval x as integer,byval y as single),运行过程中不会改变原来的参数值,传递的只是一个备份。比如
x=3,y=4
fun(x,y)
然后运行时候比如有:i=i+1:j=j+1
这时x、y的值不变
不加byval,则x、y的值改变

和赋不赋值没关系~~~
比如你要传a到functions里面,那a就是实参;传b到function里面,b就是实参
写在开头的private function fun (byval x as integer,byval y as single),xy是形参

private function fun (byval x as integer,byval y as single)传值,不影响ab
private function fun ( x as integer, y as single),传址,影响
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式