怎样用VB打开IE窗口,并且这个窗口是最大化的,还要把IE窗口右上角的最小化按钮去掉。
解决方案 »
- 这是什么表格控件?
- Datacombo 如何调整下拉列表的长度?
- ado+datagrid 问题,thank you
- 怎样在VB中将图片上传到网络服务器?
- 两个局域网内的机子,都用代理上Internet,怎么用Socket通信?
- 关于App.path的问题,忙了好长一段时间,最后一步了!急!!在线等!
- 为什么我使用activereport 打印完内容后,总空走纸一页
- 转化成单精度数的怪问题~竟然转化成“-1.#QNAN“这样的单精度????
- ddddddddddddddd
- 急求VB的学习方法经验 ,有自己想法的进来谈有高分送上!!!还有200分送!
- 如何知道系统是中文的还是英文的?
- ☆☆★★VB 6.0中如何获得数组类★★☆☆
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
'一个按钮 , 一个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
谢谢了!
谢谢了!这一句:
RemoveMenu hSysMenu, SC_MINIMIZE, MF_BYCOMMAND '使指定ie窗口最小化按钮无效尽管程序关闭了,但关闭之前没有没有重新添加菜单项,当然会继续无效至于恢复,就不是一句就能实现的了,正是破坏容易建设难呀现在,没有时间了,提示:用InsertMenu和InsertMenuItem试试