Как уже написано в предыдущих комментариях, это поведение Windows.
Персонально, я использую несколько экранов, чтобы избежать этого поведения:
- первый экран имеет панель задач
- и я показываю свою powerpoint на другом экране без панели задач (расширенный рабочий стол).
Кстати, я управляю тем, что вы ожидаете, как это ... это не очень красиво, но это работает, я думаю, как вы ожидаете:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, AppEvnts;
type
TForm1 = class(TForm)
aplctnvnts1: TApplicationEvents;
procedure aplctnvnts1Deactivate(Sender: TObject);
procedure aplctnvnts1Activate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure SetTaskBarVisible(bVisible: Boolean);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SetTaskBarVisible(bVisible: Boolean);
const
// START_BUTTON_LABEL = 'Démarrer';
START_BUTTON_LABEL = 'Start';
begin
if bVisible then
begin
ShowWindow(FindWindow('Shell_TrayWnd', nil ), SW_SHOW);
ShowWindow(FindWindow('Button' , START_BUTTON_LABEL), SW_SHOW);
end
else if FindWindow('screenClass', nil) > 0 then // Fullscreen PowerPoint
begin
ShowWindow(FindWindow('Shell_TrayWnd', nil ), SW_HIDE);
ShowWindow(FindWindow('Button' , START_BUTTON_LABEL), SW_HIDE);
end;
end;
procedure TForm1.aplctnvnts1Activate(Sender: TObject);
begin
SetTaskBarVisible(False);
end;
procedure TForm1.aplctnvnts1Deactivate(Sender: TObject);
begin
SetTaskBarVisible(True);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SetTaskBarVisible(True);
end;
end.