【问题标题】:Refreshing IE window automatically does not work in VB.Net自动刷新 IE 窗口在 VB.Net 中不起作用
【发布时间】:2011-07-12 01:37:07
【问题描述】:

我尝试编写一个简单的函数来将 Internet Explorer 窗口置于前台,然后使用 dll 函数按 F5 刷新它:

    Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Integer) As Integer

然后稍后调用此函数:

    SetForegroundWindow(processID.MainWindowHandle.ToInt32)
        SendKeys.Send("{F5}")

但是,当我尝试调试代码时,setforeground 不起作用。

我使用的是 Windows 2008(64 位),所以我想我应该改用 ToInt64。然而,这似乎也没有奏效,当我调用 SetForegroundWindow 时,似乎什么也没有出现。

还有其他推荐吗?我正在使用 VS 2008。

许多thnaks!

【问题讨论】:

    标签: vb.net 64-bit refresh sendkeys


    【解决方案1】:

    P/Invoke signatures 我可以找到建议参数应该是一个 IntPtr,而不是一个大小整数(这是有道理的 - 您不需要为 32 位和 64 位编写单独的代码):

    <DllImport("user32.dll")> _
     Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
     End Function
    

    此外,焦点问题是出了名的难以调试,因为调试器窗口总是想要重新获得焦点(例如,如果您单步执行,它可能会将焦点设置在别处,然后立即重新获得焦点以显示下一个一行代码)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      相关资源
      最近更新 更多