怎样用VB打开IE窗口,并且这个窗口是最大化的,还要把IE窗口右上角的最小化按钮去掉。

解决方案 »

  1.   

    http://tech.sina.com.cn/soft/2000-10-27/854.html
      

  2.   

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOWMAXIMIZED = 3Private Sub Command1_Click()
        Dim l As Long    l = ShellExecute(Me.hwnd, vbNullString, "http://www.osoon.com", vbNullString, vbNullString, SW_SHOWMAXIMIZED)
    End Sub
      

  3.   

    Option Explicit
    '一个按钮 , 一个listbox:
    Private Const WM_SYSCOMMAND = &H112
    Private Const SC_CLOSE = &HF060& '关闭窗体
    Private Const SC_MINIMIZE = &HF020& '最小化窗体
    Private Const SC_MAXIMIZE = &HF030& '最大化窗体
    Private Const SC_RESTORE = &HF120& '恢复窗体大小
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
    Private Const GW_HWNDNEXT = 2
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Dim mwnd() As Long
    Private Declare Function RemoveMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal _
    uPosition As Long, ByVal uFlags As Long) As Long
    Private Declare Function GetSystemMenu Lib "user32.dll" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Const MF_BYCOMMAND = &H0
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Private Sub Command1_Click()
        List1.Clear
        Dim k As Long
        k = 0
        Dim mhwnd As Long
        Dim cname As String * 260
        Dim classname As String
        mhwnd = FindWindow("IEFrame", vbNullString)
        ReDim Preserve mwnd(k)
        mwnd(k) = mhwnd
        Dim s As String * 260
        GetWindowText mhwnd, s, 260
        Dim ss As String
        ss = Left(s, InStr(1, s, Chr(0)) - 1)
        ss = "hwnd=" + CStr(mhwnd) + "   标题为:" + ss
        List1.AddItem ss
        If mhwnd <> 0 Then
            Do While mhwnd <> 0
            mhwnd = GetNextWindow(mhwnd, GW_HWNDNEXT)
            GetClassName mhwnd, cname, 260
            classname = Left(cname, InStr(1, cname, Chr(0)) - 1)
            If UCase(classname) = "IEFRAME" Then
                k = k + 1
                ReDim Preserve mwnd(k)
                mwnd(k) = mhwnd
                GetWindowText mhwnd, s, 260
                ss = Left(s, InStr(1, s, Chr(0)) - 1)
                ss = "hwnd=" + CStr(mhwnd) + "   标题为:" + ss
                List1.AddItem ss
            End If
            Loop
         End If
    End SubPrivate Sub List1_Click()
        Dim i As Long
        i = List1.ListIndex
        Dim hSysMenu As Long
        hSysMenu = GetSystemMenu(mwnd(i), 0)
        RemoveMenu hSysMenu, SC_MINIMIZE, MF_BYCOMMAND '使指定ie窗口最小化按钮无效
        SendMessage mwnd(i), WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0 '使指定ie窗口最大化
        SetForegroundWindow mwnd(i)
        
    End Sub
      

  4.   

    TO   rainstormmaster(rainstormmaster) 我按照你的程序运行之后,最小化按钮虽然存在,但不起作用,可是我把运行的程序关闭了,最小化按钮还是不起作用,为什么呀?怎么恢复呀?
    谢谢了!
      

  5.   

    //TO   rainstormmaster(rainstormmaster) 我按照你的程序运行之后,最小化按钮虽然存在,但不起作用,可是我把运行的程序关闭了,最小化按钮还是不起作用,为什么呀?怎么恢复呀?
    谢谢了!这一句:
    RemoveMenu hSysMenu, SC_MINIMIZE, MF_BYCOMMAND '使指定ie窗口最小化按钮无效尽管程序关闭了,但关闭之前没有没有重新添加菜单项,当然会继续无效至于恢复,就不是一句就能实现的了,正是破坏容易建设难呀现在,没有时间了,提示:用InsertMenu和InsertMenuItem试试