您的位置:首页 > 编程语言 > VB

在VB中如何使IE窗口最大化

2009-10-06 12:06 337 查看
     众所周知,IE窗口打开时是否最大化是由几个方面的因素造成的,比如最后一个IE窗口的最大化状态,或者注册表中的设置项。但有的时候,由于用户的IE窗口打开时并没有处于最大化状态,而程序设计人员又想使其处于最大化状态,一般大家都会想到一个办法,那就是Shell命令,因为该命令有一个参数值为vbMaximizedFocus,可以让被Shell命令运行的程序的窗口处于最大化状态,可惜的是,这个办法对IE窗口无效。

    为此,我们可以借助一个名为ShowWindow的API函数。

    如果是用VB新打开IE窗口,并使其最大化,那么可以用以下代码实现:

Option Explicit

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWMAXIMIZED = 3

Sub Main()
Dim objIE As Object

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate2 "http://www.baidu.com"
ShowWindow objIE.hwnd, SW_SHOWMAXIMIZED
Set objIE = Nothing
End Sub


    如果是想让已打开的IE窗口最大化,那么可以用以下代码实现:

Option Explicit

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWMAXIMIZED = 3

Sub Main()
Dim SHApp As Object, SHWin As Object

Set SHApp = CreateObject("Shell.Application")
For Each SHWin In SHApp.windows
If LCase(Right(SHWin.FullName, 12)) = "iexplore.exe" Then
ShowWindow SHWin.hwnd, SW_SHOWMAXIMIZED
End If
Next
Set SHApp = Nothing
End Sub


    为什么ShowWindow函数能实现,而VB中Shell函数却失败了,问题就出在IE本身有一个不可见的主容器窗口,当使用Shell并设置vbMaximizedFocus参数选项时,它是让被运行的程序的主窗口最大化,然后IE本身的那个主窗口是任何时候都不会显现出来的,因此失败了,而使用ShowWindow时,因为指定了具体的窗口句柄,且该窗口并不是IE的主容器窗口,所以能成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  VB6 IE 窗口最大化