2012-04-28 3 views
2

내 vb.net Windows 양식 응용 프로그램에서 사용자가 단추를 눌렀을 때 바탕 화면이 표시되어야합니다 (바탕 화면 단추 표시) 단추를 만들고 싶습니다.VB.NET에서 데스크톱 단추 표시 Windows Form

양식 이름을 form1으로 생각하면 "바탕 화면 표시"와 같은 단추가 있습니다. 사용자가 클릭 할 때 모든 응용 프로그램이 최소화되어야하며 바탕 화면이 표시되어야합니다. VB.NET Windows Form 응용 프로그램에 대한 코드가 있습니까?

답변

3

는 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); 
    } 
} 
} 

내가 그것을

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 
1

확인이 링크를 작동하는 경우, 확인하시기 바랍니다 위의 코드를 변환하는 online converter tool을 사용했다. 여기에는 바탕 화면을 보여주는 모든 창을 최소화하는 코드가 들어 있습니다. 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 
+0

당신은 환영 –

+0

.. 그것을 잘 나를 위해 일한 것 대단히 감사합니다. 답장을 표시하십시오. – Harsh