| 
      ...hide and disable the start button and the start menu?
     | 
   
   
    | Autor: 
      Thomas Stutz     | 
   
  | [ Print tip 
] |   |   |   
 
 
 
{ 
  The ShowStartButton function shows how to hide the start 
  button, how to disable the windows buttons (LWin and RWin) 
  (indirectly) and consequently how to hide the start menu. 
} 
 
{ 
  Die ShowStartButton Prozedur zeigt, wie man den Startbutton 
  verstecken kann und die Windows Tasten (LWin and RWin) 
  indirekt deaktivieren kann. Auch der Zugriff auf das 
  Startmenu wird folglich nicht mehr möglich sein. 
} 
 
procedure ShowStartButton(bvisible: Boolean); 
var 
  h: hwnd; 
  TaskWindow: hwnd; 
begin 
  if bvisible then 
  begin 
    h := FindWindowEx(GetDesktopWindow, 0, 'Button', nil); 
    TaskWindow := FindWindow('Shell_TrayWnd', nil); 
    ShowWindow(h, 1); 
    Windows.SetParent(h, TaskWindow); 
  end  
  else 
  begin 
    h := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil); 
    ShowWindow(h, 0); 
    Windows.SetParent(h, 0); 
  end; 
end; 
 
{Example to hide/reshow the Startbutton 
Beispiel, um den Startbutton zu verstecken/wieder anzuzeigen.} 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  ShowStartButton(False); // or true to reshow 
end; 
 
{Furthermore, you could create your own Startbutton and 
replace the original one with your own.} 
 
{Es ist auch möglich, einen "eigenen" Startbutton durch 
den original Startbutton zu ersetzen.} 
 
var 
  b: TButton;  // or another Type of button 
  h, Window: hwnd; 
begin 
  Window := FindWindow('Shell_TrayWnd', nil); 
  b := TButton.Create(nil); 
  b.ParentWindow := Window; 
  b.Caption := 'Start'; 
  b.Width := 60; 
  b.Font.Style := [fsbold]; 
end; 
 
 
 
  
                       |