有没有办法将应用程序覆盖在全屏程序上?

问题描述 投票:0回答:3

我正在寻求开发一个应用程序,它本质上是一个计时器窗口,它始终显示在任何其他应用程序前面的屏幕上,并且在聚焦其他窗口时永远不会落入背景。一个例子是,当我玩全屏游戏时,我希望这个计时器覆盖游戏,并且当我单击窗口上的计时器按钮时,它不会关闭游戏。

有什么想法可以在 C#/java/C++ 中实现这一点吗?

谢谢

user-interface architecture
3个回答
1
投票

C#:尝试设置窗口(窗体)的AlwaysOnTop属性
java: 在框架或对话框上调用 setAlwaysOnTop(true)


0
投票

我认为你想要实现的目标可以通过 C# 中表单的属性 TopMost 以及 Java 窗口上的 setAlwaysOnTop 来实现...

在 Windows 上的 C++ 中,您必须调用 SetWindowPos 函数并作为参数传递:HWND_TOPMOST 属性。

更新

由于您的应用程序处于全屏模式,请尝试使用 Win32 API 函数将应用程序设置在前台:SetForegroundWindow .

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

SetForegroundWindow(this.Handle);

否则你可以尝试避免使用 Win32 SetForegroundWindow 函数,如下所示:

this.TopMost = true;
this.Activate();

0
投票

我尝试使用 Dota 2 全屏模式 (DirectX11) 的示例来执行此操作,我尝试了上面评论中的各种标志和方法,但没有一个选项有效。我们都从这样一个事实出发:大多数游戏在全屏模式下运行得更快,我们希望专门为此模式制作一个覆盖层。也许我缺乏技术知识,但在深入研究这个主题后,我得出的结论是不可能为全屏模组制作覆盖层。所以只需安装没有框架的窗户即可。

© www.soinside.com 2019 - 2024. All rights reserved.