gpt4 book ai didi

delphi - 当全屏应用程序处于事件状态时防止出现 Windows 任务栏

转载 作者:行者123 更新时间:2023-12-02 07:08:02 28 4
gpt4 key购买 nike

我们有一个应用程序,它显示一个小的“总在最上面”窗口。一般来说,这工作得很好。与其他应用程序一样,当它处于事件状态时,任务栏将其显示为已选中。

现在将幻灯片模式下的 PowerPoint 添加到组合中。我们的窗口是可见的,并且 PowerPoint 具有整个屏幕。一切都很好。直到您单击我们的窗口,Windows 7 才会显示任务栏并选择我们的应用程序。任务栏被置于 PowerPoint 全屏显示的前面,这导致用户感到困惑。特别是当他们点击任务栏上的图标时,这会导致我们的应用程序最小化。

如果我们使用 ExStyle CreateParams 设置 WS_EX_TOOLWINDOW 并确保未设置 WS_EX_APPWINDOW,那么我们不会出现在任务栏中,但任务栏仍然会显示在前面。如果有什么区别的话,使用的语言是Delphi,XE版本。

接下来的问题是,当我们的“Always on Top”应用程序处于焦点状态时,我们如何阻止 Windows 在 PowerPoint 顶部显示任务栏。

最佳答案

正如前面的评论中已经写的,这是 Windows 行为。

就我个人而言,我使用多个屏幕来避免这种行为:

  • 第一个屏幕有任务栏
  • 我将我的幻灯片显示到另一个没有任务栏的屏幕(扩展桌面)。

顺便说一句,我像这样管理你所期望的......这不是很漂亮,但它有效,我认为,正如你所期望的:

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.

关于delphi - 当全屏应用程序处于事件状态时防止出现 Windows 任务栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192415/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com