C++ Builder Snippets  

Windows-Taskleiste ausblenden/anzeigen:
 
Folgende Funktionen blenden die Windows-Taskleiste ein bzw. aus. Die Funktionsweise ist trivialer, als man vermuten könnte: mit FindWindow wird das Window-Handle ermittelt (Der Name der Klasse lautet "Shell_TrayWnd") und anschliessend kann das Taskbar-Fenster mit Hilfe der ShowWindow-Funktion versteckt/ oder wieder eingeblendet werden:

//------------------------------------
// Taskleiste ausblenden:
//-------------------------------------
ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_HIDE);

//-------------------------------------
// Taskleiste anzeigen:
//-------------------------------------
ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_SHOW);


Allerdings fällt mir keine sinnvolle Anwendung dieser Funktionen ein: laut Microsoft ist es nicht möglich die Option "Task-Leiste immer im Vordergrund" im Programm zu deaktivieren - dies ist 'alleine dem Benutzer überlassen'. (nachzulesen in MSDN, Artikel Q179363)


Ergänzung vom Bernd Kode vom 16. Juli 2003 in unserem Gaestebuch:

Ich habe einfach Eure Lösung mit den Windows-API Funktionen (FindWindow() und ShowWindow()) eingebaut und es funktioniert hervorragend. Ich kann auch ein sinnvolles Beispiel für das Ausblenden der Windows-Taskleiste bei Programmstart nennen: Ein Windows-XP embedded Programm mit Zugriff auf SPS-Schnittstellen und Touch-Screen wird von einfachen Leuten, bedient, die zum sinnlosen Herumspielen neigen und eventuell durch Löschen / Verschiebenvon Dateien im System über die in der Taskleiste vorhandenen Programme alles lahmlegen würden.

Bernd Kode


Die Task-Leiste kann nur vom einem Programmfenster abgedeckt werden, wenn seine Höhe und Breite explizit auf die Bildschirmgrösse gesetzt werden (so machen es auch die Bildschirmschoner). Im C++ Builder würde es folgendermaßen aussehen:


Form1->Top=0;
Form1->Left=0;
Form1->Height=Screen->Height;
Form1->Width=Screen->Width;

Das Maximieren alleine reicht nicht aus: das Fenster nimmt in diesem Fall nur die Grösse des Arbeitsbereiches an, auch wenn die Task-Leiste mit Hilfe von ShowWindow (siehe oben) versteckt wird (!)



© '99-2005 by S. Kreutzmann