在VB中如何使IE窗口最大化
2009-10-06 12:06
387 查看
众所周知,IE窗口打开时是否最大化是由几个方面的因素造成的,比如最后一个IE窗口的最大化状态,或者注册表中的设置项。但有的时候,由于用户的IE窗口打开时并没有处于最大化状态,而程序设计人员又想使其处于最大化状态,一般大家都会想到一个办法,那就是Shell命令,因为该命令有一个参数值为vbMaximizedFocus,可以让被Shell命令运行的程序的窗口处于最大化状态,可惜的是,这个办法对IE窗口无效。
为此,我们可以借助一个名为ShowWindow的API函数。
如果是用VB新打开IE窗口,并使其最大化,那么可以用以下代码实现:
如果是想让已打开的IE窗口最大化,那么可以用以下代码实现:
为什么ShowWindow函数能实现,而VB中Shell函数却失败了,问题就出在IE本身有一个不可见的主容器窗口,当使用Shell并设置vbMaximizedFocus参数选项时,它是让被运行的程序的主窗口最大化,然后IE本身的那个主窗口是任何时候都不会显现出来的,因此失败了,而使用ShowWindow时,因为指定了具体的窗口句柄,且该窗口并不是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的主容器窗口,所以能成功。
相关文章推荐
- 给初学者:VB如何操作WEB页的浏览提交———七:题外话,关于小甜饼和不打开新IE窗口问题
- ie窗口如何最大化设置
- 如何让IE窗口打开时就自动默认为最大化
- 如何让IE窗口保持最大化
- 如何让IE窗口再次最大化
- 让IE窗口最小化最大化的快捷键
- IE,Firefox下无提示关闭窗口 打开窗口时窗口最大化
- 打开IE窗口自动最大化效果
- MFC学习笔记——如何使窗口最大化,但不遮盖任务栏
- 如何判断窗口是在最小化或者最大化的状态
- 如何禁用MFC单文档主窗口的最大化按钮?
- 如何重载最小化、最大化窗口消息响应
- 打开IE窗口自动最大化效果
- IE新窗口最大化
- 批处理命令之Start的详细用法\批处理打开IE窗口最大化
- js使浏览器窗口最大化实现代码(适用于IE)
- 如何判断窗口是在最小化或者最大化的状态
- VB:如何监听打开的窗口和程序
- 如何让IE浏览器窗口始终保持最大化
- C# WPF 如何禁止窗口拖到屏幕边缘自动最大化