留言收到。奇怪,上次给你的回复我是经过测试通过的,今天试一下却不行。。不知道是哪里出了问题。。原因待查,如果急用还是用online的方法吧,一个很简单的例子:在form中加入一个listbox,三个command'模块中: Option Explicit Public Const SW_HIDE = 0 Public Const SW_SHOW = 5 Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongFunction EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean Dim S As String
S = String(80, 0) Call GetWindowText(hwnd, S, 80) S = Left(S, InStr(S, Chr(0)) - 1)
If Len(S) > 0 Then Form1.List1.AddItem S
EnumWindowsProc = True End Function'程序中: Private Sub Command1_Click() List1.Clear EnumWindows AddressOf EnumWindowsProc, 0& End SubPrivate Sub Command2_Click() Dim hwd As Long hwd = FindWindow(vbNullString, List1.Text) Debug.Print hwd ShowWindow hwd, SW_HIDE End SubPrivate Sub Command3_Click() Dim hwd As Long hwd = FindWindow(vbNullString, List1.Text) Debug.Print hwd ShowWindow hwd, SW_SHOW End Sub运行程序,点击command1,listbox中出现程序列表,点选一个,例如“计数器”或“我的电脑”之类,点击command2会把它隐藏,点command3显示。。 上面程序在vb6+sp5+xp下通过。。
SendMessage hwnd, wm_showwindow, 0, vbNull显示:
SendMessage hwnd, wm_showwindow, 1, vbNull
Option Explicit
Public Const SW_HIDE = 0
Public Const SW_SHOW = 5
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongFunction EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
Dim S As String
S = String(80, 0)
Call GetWindowText(hwnd, S, 80)
S = Left(S, InStr(S, Chr(0)) - 1)
If Len(S) > 0 Then Form1.List1.AddItem S
EnumWindowsProc = True
End Function'程序中:
Private Sub Command1_Click()
List1.Clear
EnumWindows AddressOf EnumWindowsProc, 0&
End SubPrivate Sub Command2_Click()
Dim hwd As Long
hwd = FindWindow(vbNullString, List1.Text)
Debug.Print hwd
ShowWindow hwd, SW_HIDE
End SubPrivate Sub Command3_Click()
Dim hwd As Long
hwd = FindWindow(vbNullString, List1.Text)
Debug.Print hwd
ShowWindow hwd, SW_SHOW
End Sub运行程序,点击command1,listbox中出现程序列表,点选一个,例如“计数器”或“我的电脑”之类,点击command2会把它隐藏,点command3显示。。
上面程序在vb6+sp5+xp下通过。。