- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个消息传递工具。消息窗口是整个应用程序的一部分。当有消息传来时,我需要窗口转到前面。我正在使用这段代码:
if( m_hwnd == NULL || !::IsWindow(m_hwnd) )
return E_UNEXPECTED;
if(::IsIconic(m_hwnd))
{
::ShowWindowAsync( m_hwnd, SW_RESTORE );
}
::SetWindowPos(m_hwnd, HWND_TOP, 0, 0, 0, 0, SWP_ASYNCWINDOWPOS | SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
::SetForegroundWindow(m_hwnd);
if( pvbProcessed != NULL )
*pvbProcessed = VARIANT_TRUE;
return S_OK;
我什至尝试过 TOPMOST,但在某些情况下它仍然不起作用。我还尝试了::BringToFront()。
任何人都可以帮助或解释为什么它不起作用?这是已知的 Microsoft 限制吗?
最佳答案
The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true:
- The process is the foreground process.
- The process was started by the foreground process.
- The process received the last input event.
- There is no foreground process.
- The foreground process is being debugged.
- The foreground is not locked (see LockSetForegroundWindow).
- The foreground lock time-out has expired (see SPI_GETFOREGROUNDLOCKTIMEOUT in SystemParametersInfo).
- No menus are active.
参见 SetForegroundWindow()
docs了解更多详情。
关于c++ - Win32::SetForegroundWindow() 一直不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19136365/
使用 powershell 代码,我尝试更改窗口的位置(工作正常)并将此窗口“始终位于顶部”。 请在下面找到我的代码: Import-Module C:/install/WASP/wasp.dll f
这个问题已经有答案了: Bring to forward window when minimized (2 个回答) 已关闭 8 年前。 无法找到有关此主题的任何好的答案,所以也许有人可以帮助我。我正
我刚刚编写了简单的脚本来启动应用程序,并且我正在尝试使用“SendKeys”模块将击键发送到该应用程序。有一个“快照”按钮,但我无法让 Python 单击“快照”按钮,因为新窗口没有焦点。所以我计划使
我正在尝试启动一个应用程序并将其置于最前面。但是,应用程序启动正常,但最终会落后启动应用程序。请注意,在已运行的最小化应用程序上使用类似的方法效果很好(为简洁起见,从该示例中删除了该代码)——它仅在启
我有一个用 C# 编写的应用程序,它向另一个程序发送 key 。为此,我在发送有效的键之前调用了 SetForegroundWindow 方法。问题是当我使用 RDC 连接到计算机并最小化 RDC 窗
我使用这个问题 How to force C# .net app to run only one instance in Windows? 将我的 C# Windows 应用程序限制为一次只允许一个实
我正在使用 C# 应用来监听全局组合键 (ctrl+F9),这会将特定窗口置于最前面。 这是我用来将窗口置于最前面的代码,它仅在由 Button 事件触发时有效: private void b
目前,我正在尝试使用 JNA 将非 Java 应用程序设置为焦点,我发现了以下代码。 import com.sun.jna.platform.win32.User32; import com.sun.
我正在开发一个消息传递工具。消息窗口是整个应用程序的一部分。当有消息传来时,我需要窗口转到前面。我正在使用这段代码: if( m_hwnd == NULL || !::IsWindow(m_h
我写了一个图像匹配 C++ 工具,它是一个通知区域工具(无可见窗口)。它获得了另一个窗口的句柄并将其聚焦,然后匹配它保存的图像。现在这个工具正在完善,但我关注的程序的制作者(不是我写的)推送了一个更新
我有一系列相当复杂的应用程序,这些应用程序依赖于在前台切换应用程序的能力。 我的问题是,在前台切换应用程序每 5 或 6 次,它根本无法使应用程序前进。 GetLastError 不报告任何问题。我经
这是我想做的: 1)用用户名打开一个应用程序 2)提供一些输入 3)为具有不同用户名的应用程序打开第二个窗口 4)再输入一些信息 5)切换到第一个应用程序窗口,做一些事情 6)切换到第二个应用 我正在
我知道这听起来很邪恶,但我的意图根本不是这个。 用户点击“延迟拍摄”并开始倒计时,在此期间他们将焦点转到另一个应用程序,然后在倒计时之后用户希望我的应用程序收回焦点。 SetForegroundWin
谁能给我解释一下 setactivewindow 和 setforegroundwindow 有什么区别(使用来自 www.pinvoke.net/# 的 pinvoke 初看,您可以告诉我它设置了事
BringWindowToTop , SetForegroundWindow , SwitchToThisWindow , SetWindowPos , ShowWindow 所有这些都被描述为显示和
我注意到 Haskell Win32 api没有 SetForegroundWindow 函数,而且我对 haskell 不够熟练,无法自己添加此功能。是否有任何方法可以使用 haskell 复制它,
我正在寻找使用 FindWindow() 和 SetForegroundWindow() 切换到不同应用程序的旧 User32.dll 版本的替代方案. 我确实找到了使用 Process.GetPro
我在使用 PInvoke 的 .NET 中使用 SetForegroundWindow API。 当我在 Visual Studio 中调试时使用 API 时,它工作得很好。但是当应用程序正常运行时它
我是 SFML Team 的一员我们目前正在研究“请求”窗口焦点的功能。目标是在 Windows、OS X 和 Linux 上获得非常相似的行为。 对于 Windows,一个人得到相当简单的 SetF
我正在尝试使用 c# 将进程窗口设置为前台/焦点(从当时没有焦点的应用程序),因此我使用的是 user32.dll static extern bool SetForegroundWindow(Int
我是一名优秀的程序员,十分优秀!