VB 怎么用一个变量来获取发送的返回值,然后根据返回值成功再去shell 5

PrivateDeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsStrin... Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private 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 Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Const BM_CLICK = &HF5
Const ts = "关闭提示"
Const an = "是(&Y)"

Private Sub Timer1_Timer()
pk = FindWindow(vbNullString, ts)
pp = FindWindowEx(pk, ByVal 0&, "Button", an)
SendMessage pp, BM_CLICK, 0, 0
End Sub

以上代码发送按键后提示并打开指定程序
例如以上代码按键发送成功后
msgbox“正在打开程序”
shell“D:\运行的程序.exe”
求大神改下以上代码,谢谢啦
展开
 我来答
网海1书生
科技发烧友

2014-06-10 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
Private Sub Timer1_Timer()
   pk = FindWindow(vbNullString, ts)
   If pk <> 0 Then   'pk不等于0说明已经找到了指定的窗口
      pp = FindWindowEx(pk, ByVal 0&, "Button", an)
      If pp <> 0 Then   '同样,pp不等于0说明找到了指定的按钮
         SendMessage pp, BM_CLICK, 0, 0   'SendMessage是同步执行的,所以它运行结束就说明按键命令已成功发送
         Shell "D:\运行的程序.exe"    '这时候就可以运行指定的程序了。但不要用MsgBox来显示提示信息,因为它会使程序挂起的,只有点了按钮才会继续执行。可以在其他地方来显示提示信息,比如窗口的标题栏或状态栏。
      End If
   End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式