C#使用Process类运行外部程序,已运行的程序自动还原主窗体
C#使用Process类运行外部程序,已运行的程序自动还原主窗体
C# Code:
private const int WS_SHOWNORMAL = 1;
[DllImport("User32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// 运行外部程序,如程序已运行自动还原主窗体
/// </summary>
/// <param name="processName">进程名称</param>
/// <param name="filePath">需要运行的程序文件</param>
/// <param name="args">启动程序的命令行参数</param>
public static void RunProgram(string processName, string filePath, string args)
{
try
{
//查找进程
Process por = FindProcess(processName, filePath);
if (por != null)
{
//如程序已运行自动还原主窗体
ShowWindowAsync(por.MainWindowHandle, WS_SHOWNORMAL);
SetForegroundWindow(por.MainWindowHandle);
return;
}
//启动进程
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = filePath;
p.WindowStyle = ProcessWindowStyle.Normal;
p.Arguments = args;
Process pr = Process.Start(p);
Application.DoEvents();
Thread.Sleep(2000);//等待启动程序
}
catch (Exception ex)
{
Msg.ShowException(ex);
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
private const int WS_SHOWNORMAL = 1;
[DllImport("User32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// 运行外部程序,如程序已运行自动还原主窗体
/// </summary>
/// <param name="processName">进程名称</param>
/// <param name="filePath">需要运行的程序文件</param>
/// <param name="args">启动程序的命令行参数</param>
public static void RunProgram(string processName, string filePath, string args)
{
try
{
//查找进程
Process por = FindProcess(processName, filePath);
if (por != null)
{
//如程序已运行自动还原主窗体
ShowWindowAsync(por.MainWindowHandle, WS_SHOWNORMAL);
SetForegroundWindow(por.MainWindowHandle);
return;
}
//启动进程
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = filePath;
p.WindowStyle = ProcessWindowStyle.Normal;
p.Arguments = args;
Process pr = Process.Start(p);
Application.DoEvents();
Thread.Sleep(2000);//等待启动程序
}
catch (Exception ex)
{
Msg.ShowException(ex);
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
调用:
C# Code:
string file = Application.StartupPath @"\ERP.AttendImporter.exe";
MdiTools.RunProgram("ERP.AttendImporter", file, "User:" Loginer.CurrentUser.Account);
string file = Application.StartupPath @"\ERP.AttendImporter.exe";
MdiTools.RunProgram("ERP.AttendImporter", file, "User:" Loginer.CurrentUser.Account);
参考文档:
C#.Net组件开发 - 使用Attach to Process实时调试设计器代码
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
使用EF+Linq或Sql存储过程获取报表数据优缺点分析|C/S开发框架
C# DevExpress高级篇 | GridLookUpEdit组件使用|C/S开发框架
C# DevExpress教学 GridLookUpEdit组件表格下拉组件使用|C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
C#多线程使用读写锁ReaderWriterLockSlim同步写入文件-C/S开发框架
ASP.NET Core中使用滑动窗口限流-C/S开发框架
C# 调用Process.Start 请求的操作需要提升解决方案
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
CSFramework快速开发框架项目改名VS解决方案改名(使用Rename改名工具)
客户端使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
使用默认IE浏览器打开指定的URL网页
C# 使用cmd命令卸载WCF Windows 服务
.NET RichTextBox控件使用详解
[推荐]C#图像处理(Image Processing using C#)
C#.Net组件开发 - 使用Attach to Process实时调试设计器代码
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
使用EF+Linq或Sql存储过程获取报表数据优缺点分析|C/S开发框架
C# DevExpress高级篇 | GridLookUpEdit组件使用|C/S开发框架
C# DevExpress教学 GridLookUpEdit组件表格下拉组件使用|C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
C#多线程使用读写锁ReaderWriterLockSlim同步写入文件-C/S开发框架
ASP.NET Core中使用滑动窗口限流-C/S开发框架
C# 调用Process.Start 请求的操作需要提升解决方案
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
CSFramework快速开发框架项目改名VS解决方案改名(使用Rename改名工具)
客户端使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
使用默认IE浏览器打开指定的URL网页
C# 使用cmd命令卸载WCF Windows 服务
.NET RichTextBox控件使用详解
[推荐]C#图像处理(Image Processing using C#)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
