C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章

这篇具有很好参考价值的文章主要介绍了C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  今天继续研究C#的WinForm的实例显示效果。

  我们上次介绍了Winform窗体的唯一实例运行代码(见博文:基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章  )。这就有一个问题,程序已经打开了,这时候再次运行该应用程序,我们的方案是将该应用的主窗体显示出来。这个在单例运行方案中已经有介绍,当时用的是Windows API的ShowWindowAsync函数。但是,这里有一个问题,就是该窗体显示在Windows操作系统的任务栏里才有效,如果窗体是托盘窗体的话,窗体隐藏到托盘,这时候该函数就无法获取到主窗体的句柄,从而就无法打开该主窗体了。

  为了解决这个问题,笔者想到的是向已经启动的实例程序发送消息,根据消息进行处理显示该主窗体,下面是介绍。

  1、 项目目录;

  下面是项目目录,由基本的窗体及操作类组成。

   C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章,c#,开发语言

  2、 代码介绍;

  使用下面的API函数向线程发送消息:

   C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章,c#,开发语言

  3、 运行界面;

  因为是基本的操作,没录制GIF,所以这里不提供界面。

  4、 使用方法;

  参考该项目,直接将操作类复制到自己的项目中,然后修改操作函数即可。

   C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章,c#,开发语言

   C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章,c#,开发语言

  5、 源码下载;

  这里提供源码例子下载:

       https://download.csdn.net/download/lzhdim/88171197

  上面介绍了C#程序的无窗体进程发送消息的方案。其实,我们将该程序修改一下,就能够将该代码复用成窗体的消息处理,即定义窗体的消息处理函数,从而其它程序通过向该应用程序发送相对应的消息,就能够控制该应用程序的处理了。笔者在2002年的时候对媒体播放器Winamp研究过,该应用就是定义了很多的应用程序消息列表,比如播放、暂停、快进、快退、下一首、停止等操作,都是能够进行控制的。这个就是Windows的基于消息处理的应用程序的例子。文章来源地址https://www.toymoban.com/news/detail-634467.html

到了这里,关于C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ModbusRTU\TCP消息帧解析(C#实现报文发送与解析)

    PLC寄存器中存储(整型和无符号整型:2字节。长整型:4字节。单精度浮点数:4字节。双精度浮点数:8字节),我们只要知道数据类型,是2个字节一截取,还是4个字节 ,对接收到的报文进行字节截取然后编码成str就行 向PLC中写入Float,float占4个字节=2个寄存器,所以要使用

    2024年02月03日
    浏览(50)
  • C#实现钉钉自定义机器人发送群消息帮助类

            在企业中,针对一些关键指标内容(如每天的生产产量、每天的设备报警信息等信息),需要同时给多人分享,此时就可以将需要查看这些数据的人员都拉到一个群中,让群里的机器人将这些关键指标内容推送到群里即可【(目前已实现在钉钉群里创建自定义机器

    2024年02月04日
    浏览(41)
  • C#创建并启动新的进程

            在C#编程中, ProcessStartInfo 是一个类,用于包含有关要启动的进程的信息。 它用于 Process 类的 Start 方法,以确定如何启动新的进程。          ProcessStartInfo 类的一些重要属性包括: FileName :要运行的文件的名称,可含路径(绝对路径或相对路径)。 Arguments

    2024年02月07日
    浏览(28)
  • html写一个向flask_socketio发送消息和接收消息并显示在页面上

    以下是一个简单的HTML页面,它包含一个输入框、一个发送按钮和一个显示区域。用户可以在输入框中输入消息,点击发送按钮,然后这个消息会被发送到 Flask-SocketIO 服务器。当服务器回应消息时,它会在页面的显示区域显示出来。 此外,Flask-SocketIO 服务器端代码可以处理客

    2024年02月11日
    浏览(37)
  • Kafka消息发送失败的常见原因及解决方案

    1.1、网络故障 网络故障是Kafka消息发送失败的最常见原因之一。当网络出现故障时,Kafka就无法将消息发送到目标主题或分区。 解决方法: - 检查网络连接是否正常。 - 增加Kafka生产者的重试次数和超时时间。 1.2、分区副本不可用 如果Kafka生产者将消息发送到一个不可用的分

    2024年02月03日
    浏览(63)
  • 关于聊天功能,使用input发送消息,不能在input中显示图片解决办法

    一般情况下,发送消息,上传文件、图片都是使用 input 来实现,但是产品的功能千变万化,现实中也会有不尽人意的时候 下方使用了element中的input 绑定Enter事件发送消息,但是有个功能点是 用户需要发送图片,这时这个输入框就不能显示图片了,这时改用div进行消息输入

    2024年02月15日
    浏览(35)
  • windows运行.bat文件且设置为开机启动,不显示窗口

    步骤1;为 脚本 设置桌面快捷方式 步骤2: 将生成的快捷方式复制/剪切到以下文件夹 C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup 这样就能开机自动启动了,愉快使用吧! 创建vbs文件

    2024年02月12日
    浏览(84)
  • 基于消息调度优化启动速度方案实践

    在抖音的技术博客 https://juejin.cn/post/7080065015197204511#heading-10中,其介绍了通过修改消息队列顺序实现冷启动优化的方案,不过并未对其具体实现展开详细说明。 本文是对其技术方案的思考验证及实现。 详细代码见github: https://github.com/Knight-ZXW/AppOptimizeFramework 我们首先模拟一个

    2024年02月05日
    浏览(36)
  • 微信小程序:发送小程序订阅消息

    文档:小程序订阅消息(用户通过弹窗订阅)开发指南 在微信公众平台(https://mp.weixin.qq.com)手动配置获取模板 ID 2.1、获取消息下发权限 文档:一次性订阅消息、长期订阅消息 示例代码 这里需要注意一个坑,如果用户未授权,需要引导用户打开设置手动设置 2.2、获取登录凭

    2024年01月25日
    浏览(43)
  • MATLAB不显示figure绘图窗口但保存图像的方案

    MATLAB不显示figure绘图窗口但保存图像的方案,代码如下: figure的参数选项及含义如下: Name : 设置 Figure 窗口的标题。 NumberTitle : 控制是否显示 Figure 窗口的序号和标题。 Color : 设置 Figure 窗口的背景颜色。 Position : 设置 Figure 窗口在屏幕上的位置和大小。 Visible : 控制 Figure 窗

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包