c#最小化指定应用程序+判断激活并最大化指定应用程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace 最小化其他应用程序
{
public partial class Form1 : Form
{
[DllImport("user32.dll", EntryPoint = "PostMessage")]
public static extern int PostMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
[DllImport("User32.dll ", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);//关键方法
[DllImport("user32.dll", SetLastError = true)]
private static extern int SendMessage(IntPtr HWnd, uint Msg, int WParam, int LParam);
public const int WM_SYSCOMMAND = 0x112;
public const int SC_MINIMIZE = 0xF020;
public const int SC_MAXIMIZE = 0xF030;
public const uint WM_SYSCOMMAND2 = 0x0112;
public const uint SC_MAXIMIZE2 = 0xF030;
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
public static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 最小化其他应用程序
/// </summary>
/// <param name="processName"></param>
private void MiniMizeAppication(string processName)
{
Process[] processs = Process.GetProcessesByName(processName);
if (processs != null)
{
foreach (Process p in processs)
{
IntPtr handle = FindWindow(null, p.MainWindowTitle);
//IntPtr handle = FindWindow("YodaoMainWndClass",null);
PostMessage(handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
}
}
}
/// <summary>
/// 最小化其他应用程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
MiniMizeAppication("notepad++");
}
/// <summary>
/// 最大化其他应用程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
Process[] processes = Process.GetProcessesByName("notepad++");
if (processes.Length > 0)
{
IntPtr handle = processes[0].MainWindowHandle;
SendMessage(handle, WM_SYSCOMMAND2, new IntPtr(SC_MAXIMIZE2), IntPtr.Zero); // 最大化
SwitchToThisWindow(handle, true); // 激活
}
}
}
}
版权声明:
作者:亦灵一梦
链接:https://blog.haokaikai.cn/2020/program/aspnet/966.html
来源:开心博客
文章版权归作者所有,未经允许请勿转载。
THE END
1
二维码
海报
c#最小化指定应用程序+判断激活并最大化指定应用程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using Syste……