gpt4 book ai didi

c# - 显示桌面/最小化所有/所有窗口最小化时如何通知我的应用程序?

转载 作者:太空狗 更新时间:2023-10-29 21:47:55 25 4
gpt4 key购买 nike

如何在使用 C# 显示桌面/最小化所有/所有窗口最小化时通知我的应用程序

最佳答案

以下可能会让您入门。这只是一个带有 ListBox 的标准表单(名为 listMessages)。当我执行桌面最小化/显示全部时,表单捕获 WM_SIZE 消息并将消息 m 值输出到列表框。您的表单可能不会响应典型的最小化和最大化事件,但它应该从 Windows 消息泵接收这些消息。至于检测是否显示了任何另一个窗口,这有点复杂,但也可以完成....

using System;
using System.Windows.Forms;

namespace MinimizeAll
{
public partial class Form1 : Form
{
private const int WmSize = 5;
private const int SizeRestored = 0;
private const int SizeMinimized = 1;
private const int SizeMaximized = 2;
private const int SizeShow = 3;
private const int SizeHide = 4;

public Form1()
{
InitializeComponent();
}

protected override void WndProc(ref Message m)
{
try
{
if (m.Msg == WmSize)
{
var wparam = m.WParam.ToInt32();

switch (wparam)
{
case SizeRestored:
case SizeMinimized:
case SizeMaximized:
case SizeShow:
case SizeHide:
var output = string.Format("{0}{1:X} {2:X} {3:X} {4:X} {5:X}", prefix, m.Msg, m.WParam.ToInt32(), m.LParam.ToInt32(), m.HWnd.ToInt32(), m.Result.ToInt32());
listMessages.Items.Add(output);
break;
default:
// this is just a demo (code police)...
base.WndProc(ref m);
return;
}
}
else
{
base.WndProc(ref m);
}
}
catch (Exception)
{
listMessages.Items.Add("err");
base.WndProc(ref m);
}
}
}
}

关于c# - 显示桌面/最小化所有/所有窗口最小化时如何通知我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1991591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com