【问题标题】:CEF4Delphi - My program doesn't get visible again using Alt-Tab when browser is activeCEF4Delphi - 当浏览器处于活动状态时,我的程序不再使用 Alt-Tab 可见
【发布时间】:2019-06-29 07:40:20
【问题描述】:

我有一个 Windows 程序,我们称之为“MyApp”,用 Delphi 编写,在某个选项卡上嵌入了 chromium。我使用CEF4Delphi,但我遇到了问题。

当我使用“MyApp”并且嵌入式浏览器处于活动状态时,我可以激活另一个程序(使用 Alt-Tab 或单击任务栏中的图标)。那没问题。 但是当我想再次激活“MyApp”时,它不会被看到或被带到前面。我看不到“我的应用程序”。其他程序仍然可见,但任务栏中的图标会突出显示。要使用“MyApp”,我必须最小化其他程序,所以我会再次看到它。

只有在“MyApp”中的嵌入式浏览器被激活时才会出现此问题。

铬作为不同的进程运行,并按照文档中的建议创建:https://www.briskbard.com/index.php?lang=en&pageid=cef#usage

dpr 看起来像这样:

program MyApp;

{$R *.dres}

// uses files

{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}

begin
  NullStrictConvert := System.false;

  GlobalCEFApp := TCefApplication.Create;
  if GlobalCEFApp.StartMainProcess then
  begin
    PauseMadExcept;

    Application.Initialize;
    // ... create forms ...
    Application.Run;

【问题讨论】:

  • 我测试了一些 CEF4Delphi 演示,并在同时运行其他应用程序的情况下多次按下 alt-tab,但我无法重现此问题。 Application.MainFormOnTaskbar := True;行丢失。你试过添加它吗?请提供一个完整的最小示例来测试此问题。
  • 我在一个大型程序中遇到了这个问题,它没有出现在演示中。我不能分享那个程序,因为它是客户代码。 Application.MainFormOnTaskbar := True;我的 dpr 中缺少行,是的。有时间我会检查是否会导致此问题,谢谢您的建议。
  • 我在使用 Magix Video Edit Pro(在 Windows 10 下)时遇到了同样的问题。也许是相关的? magix.info/us/forum/… - 也在这里讨论过(没有解决方案):github.com/jimradford/superputty/issues/267 - 你能找到解决方案吗?

标签: windows delphi focus chromium chromium-embedded


【解决方案1】:

这似乎是 Windows 10 的错误!

试试这个(它帮助我使用另一个软件,Magix Video Edit Pro):

在“系统”>“设置”>“多任务”下禁用“捕捉窗口”,现在 ALT + TAB 再次起作用。软件变得专注。

更新:该错误再次出现,但在禁用“Snap windwos”后一段时间仍然有效。谁有更多的提示,请在下方评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多