栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

c# 打开指定程序并最小化指定程序

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c# 打开指定程序并最小化指定程序

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();
        Process pr = new Process();//声明一个进程类对象
        pr.StartInfo.FileName = @"D:filetftpd32.exe";//指定运行的程序,我的QQ的物理路径。
        //方案1
        //pr.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
        pr.Start();
        //pr.WaitForInputIdle(10000);
        Thread.Sleep(1000);//根据软件启动时间可适当延长

        //方案2
        IntPtr handle = FindWindow(null, pr.MainWindowTitle);
        PostMessage(handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
        //pr.Close();
        //pr.CloseMainWindow();
        //pr.Kill();
    }
}

当方案1无法生效时,使用方案2 

当最小化失败时,有可能软件还未完全启动导致,请适当延长Sleep时间进行尝试

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号