如何通过单击任务栏来检测应用程序是否被激活

2023-12-31

我有一个带有多个窗口的应用程序,其中只有主窗口出现在任务栏中。

单击任务栏中的图标,我希望所有应用程序窗口都显示在任何其他打开的窗口之上。

我尝试了 Form_Activated 事件,但如果通过直接单击主窗口激活应用程序,也会触发该事件。

那么我如何检测是否有人仅从任务栏激活了该应用程序?


它已经这样运作了。但是,您必须使用 Show(owner) 重载,以便“子”窗口始终位于主窗口的顶部,并且不会丢失在另一个应用程序的窗口后面。几乎所有商业程序都是这样工作的。

区分激活的原因是可能的,Windows 提供了先前活动窗口的窗口句柄。然后您可以检查它是否是您自己的窗口之一。然而,这在这种情况下不可用,您必须自己捕获该消息。像这样:

    protected override void WndProc(ref Message m) {
        base.WndProc(ref m);
        // Trap WM_ACTIVATE when we get active
        if (m.Msg == 6 && m.WParam.ToInt32() == 1) {
            if (Control.FromHandle(m.LParam) == null) {
                Console.WriteLine("activated from another process");
            }
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过单击任务栏来检测应用程序是否被激活 的相关文章

  • 为什么 C 程序使用 Scanf 给出奇怪的输出?

    我目前正在学习 C 编程 并且遇到了这个奇怪的输出 Program will try functionalities of the scanf function include
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • 2个对象,完全相同(除了命名空间)c#

    我正在使用第三方的一组网络服务 但遇到了一个小障碍 在我手动创建将每个属性从源复制到目标的方法之前 我想我应该在这里寻求更好的解决方案 我有 2 个对象 一个是 Customer CustomerParty 类型 另一个是 Appointm
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何对使用 Controller.User 变量的控制器操作进行单元测试?

    我有一个控制器操作 如果用户已经登录 它会自动重定向到新页面 User Identity IsAuthenticated 针对这种情况编写单元测试以确保重定向发生的最佳方法是什么 我一直在使用以下 Mocks 和 Moq 来允许在我的单元测
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何获取带有某个属性注释的所有属性?

    我刚刚从 Roslyn 开始 我想找到所有用属性名称 OneToOne 注释的属性 我启动了 SyntaxVisualizer 并能够获取对该节点的引用 但我想知道是否有更简单的方法来实现此目的 这就是我所拥有的 var prop docu
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L

随机推荐

  • 使用 C 从文本文件中打印出数组

    我正在尝试创建一个代码 它从纺织品中读取数据 然后将数据存储到内存中 打印到屏幕上以便用户可以读取它 但它仍然保存到内存中 以便您可以将其用于其余部分节目的 这是纺织品的样品 75 nevermind nvm not much nm no
  • 在Java中获取文件/目录所有者的名称[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 OSX 上的 Java 中获取文件所有者的名称 https stackoverflow com questions 3096805 how do i get the name of a fil
  • 类型错误:canvas.getContext 不是函数

    我正在尝试使用 canvas 元素在 Javascript 中为跟随光标的球设置动画 我将对画布对象的引用传递给名为 followMouse 的函数 但是当我尝试获取其上下文时 firebug 给出了以下错误 类型错误 canvas get
  • C++ TR1 正则表达式 - 多行选项

    我认为 表示字符串的结尾 然而 下面的代码给出了 testbbbccc 作为结果 这对我来说非常令人惊讶 这意味着 实际上匹配行尾 而不是整个字符串的结尾 include
  • JUnit:4.8.1“找不到类”

    好吧 我和其他人一样 是 jUnit 的新手 并且很难让它正常工作 我搜索过论坛但提供了答案 我只是不明白 如果有人可以帮助我 我将不胜感激 让我提供基础知识 操作系统 Mac OS X 6 export JUNIT HOME Develo
  • Listviewdefs 中的 SugarCRM Smarty 代码

    我正在尝试使用 Smarty PHP 在 SugarCRM 6 5 3 的 ListView custom modules Leads metadata listviewdefs php 中实现自定义功能 这工作正常 customCode
  • 方法返回类型以满足多个接口

    是否可以指定一个返回实现两个或多个接口的对象的方法 假设我们有以下接口 interface FooBar Foo Bar getFooBar interface Foo void doFoo inteface Bar void doBar
  • 如何从在线下载视频并将其存储在本地设备上,然后使用视频播放器在 Flutter 应用程序上播放视频?

    我想开发一个 flutter 应用程序 用户可以通过一个按钮从在线下载所有视频并将其存储在本地设备上 然后在 Flutter 应用程序上使用视频播放器离线播放这些视频 我通过资产视频做到了这一点 但如果我使用资产中的视频并构建应用程序 那么
  • 红宝石冻结方法

    def track for stat This is a hash with 2 elements of proc symbol gt send stat array gt send stat 0 stat 1 freeze stat cl
  • 多个域上的域级会话 cookie

    如果您希望 ColdFusion 将会话 cookie 创建为域级别 cookie 例如 bar com 而不是 foo bar com 那么您可以在 jrun web xml 中配置它
  • F#:使用可区分联合解构绑定

    open System let x 1 2 let p q x printfn A A x printfn B A A p q let y Some 1 2 try let None y with ex gt printfn C A ex
  • AS3 JSON解析

    我有点进退两难 我有一个 JSON 对象 其格式我不熟悉 以数组开头 而不是一个物体 并且想知道如何在 AS3 中解析它 该对象看起来像 food name pasta price 14 50 quantity 20 name soup p
  • 解密 aws kms 密钥时出现 Nodejs 异步问题

    我在node6中有一个lambda函数 它有5个环境变量 全部用aws kms加密 我有以下方法 它接受加密的密钥并返回解密的密钥 function decryptKMS encryptedKey console log inside de
  • 关闭Redis

    今天我第一次在本地计算机上启动 Redis 然后在关闭 Rails 应用程序后关闭了所有终端窗口 一个小时后 我再次启动Rails应用程序并执行以下操作来启动redis服务器 redis server usr local etc redis
  • 在 LINQ 查询中使用组

    我正在使用 LINQ to CRM 提供商 我正在查询信息 然后使用 LINQ 来查询 LINQ to CRM 查询 以便我可以使用 GroupBy 因为 LINQ to CRM 提供程序不支持它 这是我到目前为止所拥有的 var linq
  • Firebase - 在 Android 中检索数据

    我有一个数据看起来像这样 courses Business KOBuojCGl KVNgCx6l3 courseCode BUS2202 courseName Business Mathematics KOCH9RvYkwIamb0oxi8
  • 安装 VS 2015 update 2 后“底层连接已关闭:发送时发生意外错误”

    安装 Visual Studio 2015 更新 2 后 在尝试调试任何 Web 项目时 我不断收到错误消息 基础连接已关闭 发送时发生意外错误 不知何故 安装此更新后 IIS 10 丢失了我为 HTTPS 设置的 SSL 证书的分配 按照
  • 如何更改Combobox下拉面板的背景颜色

    我想更改组合框下拉面板的背景颜色 我正在使用 WPF 我读过这篇文章 背景颜色项目组合框 WPF https stackoverflow com questions 27963236 backgroundcolor items combob
  • 错误:具有“retain”属性的属性“myBoolVariableName”必须是对象类型

    我的 h 文件中的 interface 定义中有一个 BOOL 值 这是下面的 无论是指针还是非指针 都有同样的问题 interface myCustomViewController UIViewController
  • 如何通过单击任务栏来检测应用程序是否被激活

    我有一个带有多个窗口的应用程序 其中只有主窗口出现在任务栏中 单击任务栏中的图标 我希望所有应用程序窗口都显示在任何其他打开的窗口之上 我尝试了 Form Activated 事件 但如果通过直接单击主窗口激活应用程序 也会触发该事件 那么