1、添加引用
using System.Runtime.InteropServices;//调用外部的DLL
2、定义win32API
//调用exe
[DllImport("kernel32.dll")]
public static extern int WinExec(string exeName, int operType);
//生成执行数据
private void generateExecuteData_ItemClick(object sender, ItemClickEventArgs e)
{
WinExec(@"C:\ExecuteRecords\OrdersExecutionRecords.exe", 5);
}
WinExec说明
1、方法的返回值。
方法成功,返回>31的整数值;
方法失败,返回:
2、参数
方法有两个参数:第一个参数lpCmdLine为路径+程序、第二个参数nCmdShow为展示方式。
2.1lpCmdLine
搜索顺序:
1、参数指定路径
2、应用所在路径
3、当前路径
4、system路径(可调用GetSystemDirectory方法查询)
5、window路径(可调用GetWindowsDirectory方法查询)
6、环境变量中path路径
2.2uCmdShow
具体说明如下
是一个方法,但是我测试的是打开最大化的第三方exe程序时,想让第三方程序隐藏,用了所有的参数测试,不成功,问题猜测应该是第三方程序的框架最大化时框架有特定的设计,如前端显示、最上层等。
最终测试成功主要是因为延时问题,当你打开第三方程序后,不能立即去隐藏,需要电脑能够有时间获取到第三方程序的Handle时才能去隐藏。否则一直不成功!