【问题标题】:Running exe with TopMost property only for the Owner仅为所有者运行具有 TopMost 属性的 exe
【发布时间】:2013-10-30 11:39:31
【问题描述】:

搜索了我最好的朋友谷歌并找不到答案,所以我就问你们。

我在 WPF 中创建了一个测试应用程序只是为了尝试一些东西,其中只有一个按钮,然后通过单击它打开记事本,其中包含以下内容:

Process executable = new Process ();
        string executablePath = "notepad.exe";
        executable.StartInfo.FileName = executablePath;
        executable.Start ();

到目前为止一切都很好,但不是我想要的,因为我希望记事本仅对调用它的应用程序而不是所有应用程序成为 TopMost,这意味着,当我打开 Chrome、Paint 或任何其他应用程序时, 记事本不应该在它们之上,而应该只用于测试应用本身。

如果我点击所有者的某些东西,有没有一种很好的方法来实现这一点而不会闪烁?

谢谢!

【问题讨论】:

  • 不,另一个进程创建的窗口不能是所有者。

标签: c# wpf


【解决方案1】:

正如@HansPassant 所提到的,您正在尝试在完全位于您的应用程序之外的Window 上设置一个属性。虽然您可以设置这些Windows 之一的TopMost 属性如果您有Window 的句柄,我不相信您可以以这种方式设置Owner 属性。

您可以从 MSDN 上的 SetWindowPos function 页面了解更多信息。您还可以在 StackOverflow 上的 C# make a window topmost using a window handle 帖子中找到使用此方法将外部 Window 设置为 TopMost 的工作示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2022-12-07
    • 1970-01-01
    相关资源
    最近更新 更多