使用Visual Basic打开Internet Explorer并重新调整ie窗口的大小

时间:2014-08-24 05:14:15

标签: visual-studio-2010 vba internet-explorer visual-studio-2012 button

嘿,我长期坚持这个bug,希望有人可以提供帮助, 所以在我的.NET程序中,当你按下一个按钮时,计时器启动会打开多个Internet Explorer窗口,但问题是我希望每个打开的窗口都是不同的大小,这可以通过添加随机性来完成。但我不知道该怎么做。 请帮助!!!

这是我迄今为止所拥有的

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Process.Start("C:\Program Files (x86)\Internet Explorer\iexplore.exe", "www.google.com")
    End Sub 

2 个答案:

答案 0 :(得分:2)

您的示例代码Timer1_Tick位于.Net

但是,如果您正在寻找VBA解决方案,请尝试这样的事情

  Sub IE()

        Dim oIE As Object

        Set oIE = CreateObject("InternetExplorer.Application")

        oIE.navigate2 "www.google.com"
        oIE.Height = CInt(Int((1000 * Rnd()) + 1))
        oIE.Width = CInt(Int((1000 * Rnd()) + 1))
        oIE.Visible = True

    End Sub

此链接可能有所帮助:http://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx

答案 1 :(得分:0)

这可以通过使用interop和USER32.dll

来实现

让我举一个c#中的例子。

    [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("user32.dll", SetLastError = true)]
    internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

    public IntPtr win_handle;

    void somefunction(){
            string ie_win_class = "IEFrame";
            string ie_win_nm = "New Tab - Windows Internet Explorer";
            win_handle = FindWindow(win_class, win_name);
            MoveWindow(win_handle, 600, 600, 600, 600, True);
     }
抱歉,我没有VB的经验。我希望这能帮助你。

链接 -

MoveWindow function

COM Interop (Visual Basic)