- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以,我认为这很简单,但是,我错了。以下是问题的简化描述:
我正在为我们的制造人员编写一个小应用程序,当他们单击系统托盘中的应用程序图标时,它将抓取整个桌面以及前景窗口的屏幕截图。目前,我在 NotifyIcon 的 MouseMove 事件中使用 Win32 方法“GetforegroundWindow”来保存前景窗口句柄并在 Click 事件中截取屏幕截图。
这有时确实有效,但如果我快速单击该图标,我实际上会捕获任务栏而不是前景窗口。我不确定为什么会发生这种情况(我知道任务栏是一个窗口,我不明白为什么有时它似乎在我单击之前在 MouseMove 中有焦点),而且我使用 EnumWindows 方法运气不佳同样,可能是因为我不完全理解它是如何工作的。
看起来,如果我能够仅使用窗口句柄获得每个窗口的 z 位置,那么使用 EnumWindows 就可以轻松解决这个问题。但是,我还没有找到这样做的方法。
所以,我问你们;考虑到前景窗口当时可能没有焦点,您将如何编写一种方法来可靠地定位前景窗口?要么我的 google-fu 失败了,要么相关信息很少。提前致谢。
最佳答案
任务栏与任何前景窗口一样有效。当你点击它时,它会暂时成为前景窗口。例如,如果您单击“开始”并按 Escape,它将成为前景窗口,直到您单击它为止。
<罢工>你可以使用 GetWindow HWND_NEXT 传入任务栏的窗口句柄。
没关系,因为任务栏是最顶层的窗口,GetWindow(或 GetNextWindow 等)将以不同方式运行。我建议重新访问 EnumWindows这可能是您最好的选择。
关于c# - 如何在没有焦点时可靠地找到前景窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2343885/
我的应用程序可以正确接收通知,但无法显示包含收到的信息的弹出通知(如果应用程序已打开)。 注意:如果应用程序在后台,通知会毫无问题地显示。 我的代码: 我以这种方式收到通知: @Override pu
我需要根据收到远程推送通知的时间来处理它们。当应用程序在后台或终止时,如果我收到推送通知,当我点击推送通知时,我会在 ` 中处理它 - (void)application:(UIApplication
我想根据控件的状态更改/动画自定义按钮控件模板的 Foreground 属性。 在 RC0 之前,我设置了 ContentPresenter 的前景,给它一个 x:Name,并在 VisualStat
我正在尝试设置 block ,以便其前景色每次都会改变鼠标光标移到它上面,这是我的代码: Remove Message
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。 6
有时,当我执行“docker-compose up -d”时,我忘记了“-d”部分。因此它开始向我显示启动日志,如果我按Ctrl + C,它将终止所有过程并向我显示关闭日志。 我对此有几个问题: 如果
我有一个启动器风格的应用程序。用户启动应用程序后,时钟开始滴答作响,经过一定时间后,用户将返回到我的应用程序的主要 Activity,并被告知时间到了。 为了实现这一点,我有一个 AsyncTask,
我有一个 FrameLayout,我想通过选择器为它应用前景可绘制对象,我正在尝试实现“drawSelectorOnTop”但是为了简单的布局 现在当用户按下“state_pressed”时选择器不适
我很难改变 Angular 2 Material 的前景颜色。例如在工具栏中,文本是黑色的。我尝试用以下样式更改它 @import '~@angular/material/theming'; $pri
我有一个奇怪的案例。我的 swift ios 应用程序已连接到 Cloudkit。如果应用程序未运行(后台状态),我每次都会收到我的通知徽章和警报!如果应用程序正在运行,则不会收到任何通知!我知道它没
这个问题在这里已经有了答案: How to change Status Bar text color in iOS (59 个答案) How to change the status bar bac
我想知道是否可以更改共享元素过渡的 z 顺序?看: 我有一个带有图像的布局,它填满了整个屏幕。图片前面是一个显示图片标题的文本框。如果我点击文本框,将开始过渡到详细信息 Activity 。因此,我实
每当文本框获得焦点时,文本的边框和前景都会根据当前主题更改: 主题灯->边框:黑色,文字:白色,背景:透明 theme dark ->border:white, text:white, backgro
我最近开始熟悉 Web 应用程序开发并努力解决一个基本的 css 布局问题。 所需的布局是一个中心区域重叠几个背景元素。看这里: 此图像显示了所需的布局: 我也在 codepen 上破解过它: Cod
这是交易。我可以创建一个 ListBox 并为其设置样式。我可以编辑模板的副本,以便状态在 Expression Blend 3 中可用。我可以更改状态,以便在选择时修改行项目的背景颜色。但是由于 C
我可以通过这样做来改变 QImage 的背景: QPainter painter(&image); painter.setCompositionMode(QPainter::CompositionMo
我有一个为 iOS8 实现的共享扩展。该服务使用 OAuth 进行身份验证。我用于扩展的登录信息与容器应用共享。 问题是: 当我在扩展中时,然后应用程序切换到容器应用程序并注销,然后应用程序切换回包含
我有一个 WPF Canvas 项目,我从工具箱中将对象拖放到 Canvas 上。根据某些数据,其中一些对象应该闪烁或闪烁。我得到一个未处理的异常:无法在不可变对象(immutable对象)实例上设置
我是一名优秀的程序员,十分优秀!