【问题标题】:Automatically start an application from Edge从 Edge 自动启动应用程序
【发布时间】:2021-12-28 00:35:55
【问题描述】:

我正在从 Excel VBA 运行一个程序。它正在将一个文本文件写入我的硬盘。到目前为止一切顺利。

我曾经使用下面的代码从 Internet Explorer 运行这个程序。由于我安装了 Windows 11,VBA 会自动打开 MS Edge。该程序仍然运行良好。但是,我收到一条烦人的消息,这意味着我必须按“打开”才能继续。由于我的 VBA 程序是完全自动化运行的,因此无法容忍这种手动操作。

谁能告诉我如何摆脱这个打扰的问题?

Function pubRobo(RobInp, RobOut)
Dim IE As Object, maxTime As Date

    Set IE = CreateObject("InternetExplorer.Application") 'New InternetExplorer
    With IE
        .Visible = False
        .navigate "http://robostorage.blob.core.windows.net/clickonce/PbnPlayer/RoboBridge.PbnPlayer.application?pbnFileName=" & RobInp
    End With
    Set IE = Nothing
End Function

【问题讨论】:

  • 自动打开会有安全隐患。

标签: vba internet-explorer microsoft-edge


【解决方案1】:

您可以使用以下解决方案来匹配鼠标光标可以通过 VBA 移动到计算机屏幕上的某个位置的位置。使用 VBA,然后单击该框。

您可能需要添加一个等待计时器,例如 Wait (Now + TimeValue("0:00:02"))Do While IE.ReadyState <> 4: DoEvents: Loop //,以便让弹出框有时间加载。

您也可以为此使用 Selenium。

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10

Private Sub SingleClick()
  SetCursorPos 100, 100 'x and y position
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Private Sub DoubleClick()
  'Double click as a quick series of two clicks
  SetCursorPos 100, 100 'x and y position
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Private Sub RightClick()
  'Right click
  SetCursorPos 200, 200 'x and y position
  mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
End Sub

来源:https://excelhelphq.com/how-to-move-and-click-the-mouse-in-vba/

【讨论】:

  • 这看起来不错。但是,有时 Edge 会启动两次,并且按钮位于我点击第一页的“第二”页上。这非常烦人......我的程序多年来运行良好,似乎我不能再使用它了。我试过 selenium,但我没有成功让那个工作。
  • 这里也一样。自从 Edge 出现以来,excel 中的数据抓取变得更加困难。此外,您应该能够最大化浏览器窗口......如果可以做到这一点,它应该成为激活窗口并跳转到第二个浏览器的前面
猜你喜欢
  • 1970-01-01
  • 2021-06-20
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2010-12-02
相关资源
最近更新 更多