在我的vb.net窗體窗體應用程序中,我想製作一個按鈕,當用戶點擊按鈕時,應該顯示桌面(顯示桌面按鈕)。在VB.NET中顯示桌面按鈕Windows窗體
考慮表單名稱爲form1,它有一個像「顯示桌面」這樣的按鈕,當用戶單擊時,所有的應用程序都應該最小化,並且應該顯示桌面,是否有任何VB.NET Windows Form應用程序的代碼。
在我的vb.net窗體窗體應用程序中,我想製作一個按鈕,當用戶點擊按鈕時,應該顯示桌面(顯示桌面按鈕)。在VB.NET中顯示桌面按鈕Windows窗體
考慮表單名稱爲form1,它有一個像「顯示桌面」這樣的按鈕,當用戶單擊時,所有的應用程序都應該最小化,並且應該顯示桌面,是否有任何VB.NET Windows Form應用程序的代碼。
在C#中它是這樣的:
using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication1 {
class Program {
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true)]
static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
const int WM_COMMAND = 0x111;
const int MIN_ALL = 419;
const int MIN_ALL_UNDO = 416;
static void Main(string[] args) {
IntPtr lHwnd = FindWindow("Shell_TrayWnd", null);
SendMessage(lHwnd, WM_COMMAND, (IntPtr)MIN_ALL, IntPtr.Zero);
System.Threading.Thread.Sleep(2000);
SendMessage(lHwnd, WM_COMMAND, (IntPtr)MIN_ALL_UNDO, IntPtr.Zero);
}
}
}
我用了一個online converter tool轉換上面的代碼,請驗證它是否工作
Imports System
Imports System.Runtime.InteropServices
Namespace ConsoleApplication1
Class Program
<DllImport("user32.dll", EntryPoint := "FindWindow", SetLastError := True)> _
Private Shared Function FindWindow(lpClassName As String, lpWindowName As String) As IntPtr
End Function
<DllImport("user32.dll", EntryPoint := "SendMessage", SetLastError := True)> _
Private Shared Function SendMessage(hWnd As IntPtr, Msg As Int32, wParam As IntPtr, lParam As IntPtr) As IntPtr
End Function
Const WM_COMMAND As Integer = &H111
Const MIN_ALL As Integer = 419
Const MIN_ALL_UNDO As Integer = 416
Private Shared Sub Main(args As String())
Dim lHwnd As IntPtr = FindWindow("Shell_TrayWnd", Nothing)
SendMessage(lHwnd, WM_COMMAND, DirectCast(MIN_ALL, IntPtr), IntPtr.Zero)
System.Threading.Thread.Sleep(2000)
SendMessage(lHwnd, WM_COMMAND, DirectCast(MIN_ALL_UNDO, IntPtr), IntPtr.Zero)
End Sub
End Class
End Namespace
檢查此鏈接。這包含代碼以最小化顯示桌面的所有窗口。 http://www.dreamincode.net/code/snippet2109.htm
Public Sub ShowDesktop()
keybd_event(VK_LWIN, 0, 0, 0)
keybd_event(77, 0, 0, 0)
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_LWIN = &H5B
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call ShowDesktop()
End Sub
非常感謝你這對我來說工作得很好.. – 2012-04-28 06:14:32
歡迎您。請將其標記爲已回答。 – Harsh 2012-04-28 06:15:38