vb 给其他程序传递值问题
用什么方法可以实现VB给其它程序的输入框输入值方法好的加分内似873034970说的意思Hwnd通过一些方法已经找到,但没有窗口命名通过Hwnd发送消息,软件没有反应Se...
用什么方法可以实现 VB给其它程序的输入框输入值
方法好的加分
内似 873034970 说的意思
Hwnd通过一些方法已经找到,但没有窗口命名
通过Hwnd发送消息,软件没有反应
SendMessage 不行啊,无法收到,还有没有他发送方法 展开
方法好的加分
内似 873034970 说的意思
Hwnd通过一些方法已经找到,但没有窗口命名
通过Hwnd发送消息,软件没有反应
SendMessage 不行啊,无法收到,还有没有他发送方法 展开
3个回答
展开全部
原理:每一个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的灵活应用)
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的灵活应用)
展开全部
我给你说说原理:
其他程序的输入框有一个hwnd值的
你用api获得输入框的hwnd值
然后用api函数给这个输入框发信息
具体的api函数你从网上找。。。。
其他程序的输入框有一个hwnd值的
你用api获得输入框的hwnd值
然后用api函数给这个输入框发信息
具体的api函数你从网上找。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上半部分和问题都不是一个类型的~
上半部分是传值和传址的问题
加上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),传址,影响
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询