问题标签 [always-on-top]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
163 浏览

android - Android:在我的应用程序中,我可以在其他应用程序上添加视图吗?

例如,我的应用程序被称为 A,而另一个应用程序被称为 B。

我想做以下事情之一:
1. 单击 A 中的一个按钮,它会触发一些事件/功能,这样我就可以在 B 上有一个 Button当我从应用程序A切换到应用程序B。

2.单击A中的一个按钮,然后将生成一个始终在顶部的按钮,并且当我切换到其他应用程序或返回主屏幕时该按钮保持显示。

有没有办法做这样的事情?

0 投票
2 回答
201 浏览

android - 如何使活动的一部分始终处于最前面?

有一个关于制作 View Always-On-Top 的一部分的问题。请参阅下面的 Groupon 图片。底部的黑色窗口显示“29 美元起”和“购买!” 始终位于活动页面的顶部。这意味着页面的其余部分可以在底部的黑色窗口上方滚动。请注意,我只希望此活动有一个 Always-On-Top

在此处输入图像描述

如何使活动的一部分始终在最前面?你认为他们为 Groupon 使用了什么样的布局?我只是要做一个RelativeLayoutand layout_alignParentBottom="true"

0 投票
1 回答
73 浏览

windows - 如何使 Eiffel Vision2 窗口始终位于顶部?

我创建了一个带有动画的 Vision2 小窗口。

在我的 Windows 7 环境中,我希望此动画始终显示在我桌面上所有其他窗口的顶部。我可以定期调用raise以将 Vision2 窗口放在前面 - 但这样做时我会失去对所选窗口的关注。

归结为:

Q1:是否有可能使用 Vision2 让一个窗口“始终在最前面”所有其他窗口?

Q2:Eiffel WEL(和 Windows 7)可以做到吗?

0 投票
1 回答
1574 浏览

java - 无法在 Java / C++ 中为外部应用程序设置永远在线

我正在寻找解决方案,使外部应用程序(不是像记事本或 calc.exe 这样的 Windows 应用程序)在按下 Java GUI 中的按钮后始终保持在顶部。我在 C++ 中使用此代码获取桌面上所有打开的窗口并将它们的进程 ID (PID) 与发送的 PID (来自我的 Java 应用程序) 匹配:


Java JNI 中的实现:


在 Java 中,我使用此代码获取选定进程的 PID:


我的程序在 MS Windows 应用程序中运行良好,使它们始终处于领先地位。不幸的是,外部应用程序并不总是最重要的。我正在使用 SetWindowPos(); 来自 C++ 的方法。当我通过 GetForegroundWindow() 选择外部程序窗口并将此窗口句柄 (HWND) 作为参数放在 SetWindowPos() 上时,它可以工作;这是与始终位于顶部的外部应用程序一起使用的代码(但我必须自己选择应用程序窗口 - 用鼠标选择):


是否可以从 JNI 获取 C++ 中方法的实现,并使用 JNA,使用 Java GUI 打开外部和设置应用程序始终在顶部?


请帮忙。我不能始终为外部应用程序(非 MS Windows 软件)设置在最前面。我正在使用 JNA 3.0.0 版本。

-----------------------------------------------------------

我正在尝试将 C++ Win Api 方法(来自我上面的第一个问题) - EnumWindowsProc、EnumWindows GetWindowThreadProcessId 和 SetWindowPos - 用于 Java 代码实现,以简化我的应用程序的代码。我试图将 C++/JNI 代码的功能转移到 JNA。不幸的是,我只能打印带有窗口标题的所有桌面窗口的句柄(HWND),而没有 PID。

我想在 Java 中发送已打开程序(exe 文件)的进程 ID,以在 Java JNA 中实现 EnumWindows,并在 Java JNA 中通过桌面上每个打开的窗口(在 EnumWindowsProc 方法中)搜索此进程 ID。然后我想将发送进程ID的windowHandle与桌面上打开的窗口的windowHandle进行比较。找到发送进程 ID 的 windowHandle 后,我想调用 SetWindowPos 方法,它允许我将打开的窗口设置在 Always on Top(Top Most)。换句话说,我想将函数从 C++/JNI 复制到 JNA 的 Java 代码中。

这是我的代码:

我的第二个问题是当我尝试为外部应用程序设置 Aways On Top 时,该 exe 文件会生成一个以上的 PID(进程 ID),因为它不起作用。有什么问题?对于只生成一个进程 ID 的软件,它正在工作,对于另一个生成多个 PID 的软件(exe 文件)(例如,当我打开 Adob​​e Reader 时,它为一个 exe 文件生成两个 pid)它不起作用。

如果能帮助我将 C++/JNI 代码中的功能转移到 JNA,我将不胜感激。我想通过 JNA 解决 Java 代码中的这些问题。

0 投票
4 回答
7807 浏览

android - 如何使视图始终处于顶部?

我有一个TextView,它在图​​像上。当我点击按钮时,TextView背景颜色会改变,但图像不会消失。例如:

TextView的开头:

在此处输入图像描述

当我单击一个按钮时:

在此处输入图像描述

0 投票
1 回答
355 浏览

c++ - 在 Linux 上使用 QT,有没有办法禁用“始终在顶部”?

我的问题:要在 Linux 上运行的 QT 4 C++ 应用程序需要锁定各种常规 GUI 功能。具体来说,我想尽可能多地删除标题栏的功能。

我可以使用 setWindowFlags(Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint);

但标题栏左上角仍有一个下拉菜单。里面的大部分功能都被禁用(没有最小值、最大值或关闭),但启用了“始终位于顶部”复选框。

我可以通过 QT 禁用“始终在最前面”复选框,还是需要找到操作系统解决方法?

0 投票
2 回答
663 浏览

java - JWindow - 总是在顶部,但在系统栏之下?

我一直在制作一个程序来监控远程系统并在屏幕的一个角落(用户偏好)显示非侵入性警报,以提醒用户远程系统的变化。为此,我使用了 JWindow,以便为更重要的警报产生脉冲效果,以引起用户的注意。我还有一个从屏幕外滚动到屏幕上的警报。

我遇到的问题是,如果我不将这些警报设置为always on top,它们并不总是显示,但是当我将它们设置为 always on top 时,滚动选项也会显示在任务栏上方。有什么方法可以强制它显示在所有其他程序上(全屏程序不需要应用),但在任务栏下方?

编辑: 这是我滚动 JWindow 开/关屏幕的代码:

Edit2:更新代码以显示我对 NESPowerGlove 的回答:

下面是我实际构建窗口的方式(当前)。这个方法只是一个占位符,直到我得到图像来构建最终的 L&F 窗口。

0 投票
1 回答
2331 浏览

c# - 创建按钮始终在顶部

即使在最小化应用程序后,我也试图Button始终保持领先。很像浮动Button,当我单击应用程序隐藏的按钮时,再次单击应用程序显示。

Window可以设置Topmost="True"属性,那Button呢?

0 投票
2 回答
1433 浏览

android - 始终(从不杀死)android屏幕上的可见图标

我想在屏幕上创建图标,在 3 天后通过网络搜索并在 IRC 频道中询问并实施这样的示例后,只听它的触摸(而不强制创建无用的通知):

运行在所有其他应用之上的 Android 应用?

创建系统覆盖窗口(始终在顶部)

我发现有一种 hacky 方法可以做到这一点,但没有人知道(智能任务栏开发人员除外)我安装了带有大多数源示例的智能任务栏,发现这个示例在没有通知栏的情况下被杀死,但智能任务栏从未被杀死,(我发现你可以'甚至不使用常规任务杀手杀死它,如 Android 任务管理器),只有一种方法可以杀死这个图标,进入设置>应用程序>选择智能任务栏>强制停止。

我发现的另一件事是它永远不会进入后台并且在android任务管理器中(在实时进程列表中)它被标记为可见并且你不能杀死它有人可以帮助我如何创建一个始终可见的图标并且从未在屏幕上被杀

0 投票
2 回答
6427 浏览

java - 框架总是在我的程序之上

我正在尝试在未装饰的 alwaysOnTop 框架中创建一种工具栏。因此,我希望我的框架位于我的主框架之上,而不是位于其他程序的框架之上。我试过这段代码:

但是尽管使用了 JDialog 和精确的所有者,框架仍然在其他应用程序之上(至少对于 Ubuntu。也许结果与其他操作系统不同?)

编辑:好的,我为我的对话框尝试了这段代码:

现在的问题是,当主窗口失去焦点时,对话框会夺回焦点,我不明白为什么。例如,我运行我的应用程序,我尝试切换到 Firefox,Firefox 出现并覆盖了 mainFrame,但 A 对话框获得焦点并停留在屏幕中。现在,如果我再次选择 Firefox,对话框最终会正确消失。你能解释一下为什么对话框得到焦点吗?

谢谢