Windows Startmenü per VB öffnen und schließen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Wincrash.

    Windows Startmenü per VB öffnen und schließen

    Hi Leute,

    wisst ihr, wie man das Windows7- und Windows8-Startmenü per Process.Start() öffnet oder schließt?
    Ich habe heute und gestern danach gegoogelt, habe aber weder eine Anwendung oder einen Prozess gefunden, welchen man (mit oder ohne Argumente) startet, um das Windows Startmenü zu öffnen oder zu schließen.
    Vielen Dank,
    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.
    Du musst einfach die Windows-Taste an die Taskleiste senden.
    Dafür brauchst du diese API-Funktionen:

    VB.NET-Quellcode

    1. <DllImport("user32.dll", SetLastError := True)> _
    2. Private Shared Function FindWindow(lpClassName As String, lpWindowName As String) As IntPtr
    3. End Function
    4. <DllImport("user32.dll", SetLastError := True)> _
    5. Private Shared Function SetForegroundWindow(hWnd As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
    6. End Function
    7. <DllImport("user32.dll")> _
    8. Private Shared Sub keybd_event(bVk As Byte, bScan As Byte, dwFlags As UInteger, dwExtraInfo As UIntPtr)
    9. End Sub

    Dann brauchst du sie nur noch so aufzurufen:

    VB.NET-Quellcode

    1. Dim hwnd = FindWindow("Shell_TrayWnd", Nothing)
    2. If hwnd <> IntPtr.Zero Then
    3. SetForegroundWindow(hwnd)
    4. keybd_event(&H5b, 0, 0, UIntPtr.Zero)
    5. keybd_event(&H5b, 0, 2, UIntPtr.Zero)
    6. End If

    Hab das auch gebraucht und so hats funktioniert.
    @Wincrash
    Schonmal mit der System.Runtime.InteropServices gearbeitet?--> oder sagen wir mal mit den DLLs

    @Artentus
    ich denke wir sollten hier noch "FindWindow" und "SetForeGroundWindow" erwähnen..

    Die Seite die ich eben gepostet habe enthält da Informationen drüber..
    @Confuzi Us: Nein, mit InteropServices habe ich leider wenig Erfahrung....
    @Artentus: Ich werde gleich mal testen ob's funktioniert hat...
    Wincrash


    Edit: Vielen Dank, hat funktioniert, aber wie ist es unter Windows8? Ist der Aufruf noch der selbe?
    (Ich habe leider kein Win8 zum testen)
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.