Start-Button verändern
 Info  
Von : Wolfgang Kluge
 Zusatz  
Printfreundliche Ansicht
Die Überschrift ist nicht die beste, da es eigentlich kein richtiges verändern ist. Nur temporär... Aber was solls...man kann an besagtem Startbutton schön rumspielen. Was man dazu braucht, ist eigentlich nur das Handle des Buttons. Um dieses zu bekommen braucht man..

 Deklaration:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Const GW_CHILD = 5

' verstecken
Private Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_HIDE = 0
Private Const SW_RESTORE = 9

' schließen
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10

' verschieben
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_NOSIZE = &H1


Richtig eingesetzt kann man mit diesem Handle jetzt eigentlich alles machen...Man kann den Button verschieben, disablen, verstecken oder schließen..und mehr
Der erste Teil bleibt dabei immer der gleiche:
Dim ret As Long
ret = FindWindow("shell_traywnd", "")
ret = GetWindow(ret, GW_CHILD)


um jetzt die veränderungen durchzuführen nimmt man das Handle und verändert die Eigenschaften der Fensterklasse, wie man es für richtig hält.
' verstecken
ShowWindow ret, SW_HIDE
' wieder anzeigen
ShowWindow ret, SW_RESTORE

' schließen
' kann erst nach Neustart wieder angezeigt werden
SendMessage ret, WM_CLOSE, 0&, 0&

' verschieben
SetWindowPos ret, 0&, 950&, 0&, 0&, 0&, SWP_NOSIZE