|
方法一
'需要一個Command1
Private Declare Sub keybd_event Lib "user32" ( _ ByVal bVk As Byte, _
ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2 Const VK_LWIN = &H5B
Private Sub Command1_Click()
' 77 is the character code for the letter 'M' Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(77, 0, 0, 0) Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0) End Sub
方法二
可呼叫*.SCF檔 去完成 檔案內容如下 [Shell] Command=2 [Taskbar] Command=ToggleDesktop 啟動這檔案便可以輕易做到 在VB下的做法如下 先宣告一個資料結構 Private Type SCFFile Tittle1 As String * 9
Command1 As String * 11 Tittle2 As String * 11 Command2 As String * 21 End Type 然後使用以下程式碼呼叫 Dim FileData As SCFFile Open "C:\Honey.scf" For Binary As #1
FileData.Tittle1 = "[Shell]" & Chr(13) & Chr(10) FileData.Command1 = "Command=2" & Chr(13) & Chr(10) FileData.Tittle2 = "[Taskbar]" & Chr(13) & Chr(10)
FileData.Command2 = "Command=ToggleDesktop" Put #1, , FileData Close Shell "Start c:\Honey.scf" '/*啟動Honey.scf*/ Kill "C:\Honey.scf" '/*這檔案已經不在使用 殺掉他*/ 就完成了
若要還原只要在執行一次就行了
方法三
這是在VB入門網看到的,節錄自VB Square Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long
Private Const WM_COMMAND As Long = &H111 Private Const MIN_ALL As Long = 419 Private Const MIN_ALL_UNDO As Long = 416 Public Sub MinimizeAll() Dim lngHwnd As Long
lngHwnd = FindWindow("Shell_TrayWnd", vbNullString) Call PostMessage(lngHwnd, WM_COMMAND, MIN_ALL, 0&) End Sub Public Sub RestoreAll()
Dim lngHwnd As Long lngHwnd = FindWindow("Shell_TrayWnd", vbNullString) Call PostMessage(lngHwnd, WM_COMMAND, MIN_ALL_UNDO, 0&) End Sub
方法四
相關資訊
文件出處
|