【问题标题】:How to make other application hidden window visible from my application?如何使其他应用程序隐藏窗口从我的应用程序中可见?
【发布时间】:2014-06-21 11:05:45
【问题描述】:

我的应用程序隐藏了它的窗口(因此也隐藏了任务栏按钮)并且只停留在通知区域中,代码如下:

Form1.Hide;

当我点击通知图标时,窗口会显示以下代码:

Form1.Show;
Application.Restore;

但我想在执行第二个实例时显示窗口。我可以使用“文件映射”将任何数据从第一个实例传递到第二个实例。到目前为止,我只使用以下代码管理了如何显示窗口,如果它只是最小化(任务栏按钮存在):

if IsIconic(FirstInstanceApplicationHandle) then ShowWindow(FirstInstanceApplicationHandle, SW_RESTORE);
SetForegroundWindow(FirstInstanceApplicationHandle);

那么我如何使第二个实例中的第一个实例窗口可见?

【问题讨论】:

    标签: windows delphi delphi-6


    【解决方案1】:

    最干净的方法是向第一个应用程序发送一条消息,让它自行恢复。当应用程序自行恢复时,会执行大量代码。这就是您拨打Application.Restore 所得到的结果。这就是你需要发生的事情。

    现在,很难从外部做到这一点。所以让第二个应用程序向第一个应用程序发送消息,然后让第一个应用程序自行恢复。也请致电SetForegroundWindow,就像您目前所做的那样。你的第二个应用程序可以赠送它,但第一个应用程序不能接受它。

    您需要允许第二个应用在第一个应用中发现要向其发送消息的窗口句柄。您的文件映射方法将允许这样做。请确保您使用不受娱乐的窗口句柄。例如Application 手柄或用AllocateHWnd 制成的手柄。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      相关资源
      最近更新 更多