C#使用WinAPI中 WinExec 调用外部exe程序
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的整数值;
方法失败,返回:
返回结果 | 说明 |
0 | 系统内存或资源不够 |
ERROR_BAD_FORMAT | 非法的exe程序 |
ERROR_FILE_NOT_FOUND | 文件未找到 |
ERROR_PATH_NOT_FOUND | 路径未找到 |
2、参数
方法有两个参数:第一个参数lpCmdLine为路径+程序、第二个参数nCmdShow为展示方式。
2.1lpCmdLine
搜索顺序:
1、参数指定路径
2、应用所在路径
3、当前路径
4、system路径(可调用GetSystemDirectory方法查询)
5、window路径(可调用GetWindowsDirectory方法查询)
6、环境变量中path路径
2.2uCmdShow
具体说明如下
参数 | 说明 |
0 | 窗体隐藏 |
1 | 激活并展示一个窗体。不管窗体为最小化或最大化状态,系统将其恢复至原始大小及位置。当初次使用时,建议使用本值 |
2 | 激活窗体,并最小化 |
3 | 最大化窗体 |
3 | 激活窗体,并最大化 |
4 | 展示窗体的大小及位置为最常用大小及位置 |
5 | 展示窗体 |
6 | 最小化窗体后,激活Z轴上的上一层窗体 |
7 | 展示窗体,并设为最小化 |
8 | 展示窗体的大小及位置为当前大小及位置 |
9 | 重新初始化窗体 |
10 | |
11 | 最小化窗体 |
是一个方法,但是我测试的是打开最大化的第三方exe程序时,想让第三方程序隐藏,用了所有的参数测试,不成功,问题猜测应该是第三方程序的框架最大化时框架有特定的设计,如前端显示、最上层等。
最终测试成功主要是因为延时问题,当你打开第三方程序后,不能立即去隐藏,需要电脑能够有时间获取到第三方程序的Handle时才能去隐藏。否则一直不成功!
C#使用WinAPI中 WinExec 调用外部exe程序相关推荐
- CDR插件开发之CPG插件018 - 在CPG插件中调用外部EXE程序并传递参数
在上篇文章中,讲解了CPG插件在VS2019中实现调试的具体方法.本文以具体代码为例,讲解在CPG插件中调用外部EXE程序,并传递运行参数的方法. 工程搭建准备 按照惯例,本篇文章的序号为018,请直 ...
- .NET 调用外部exe程序,出现已停止工作
趁热打铁,赶紧记录下来. 本身调用,使用Process.Start("XX.exe"); 基本上是没问题的,但是有些需要读取配置文件的exe程序(目前将出现停止工作的原因归为这个 ...
- C++打开网页,发起QQ对话,调用外部exe程序
本文介绍了C++如何打开网页,发起QQ对话. 用默认浏览器打开一个网页 ShellExecute(NULL, _T("open"), _T("http://my.csdn ...
- Python调用外部EXE程序遍历窗体及控件并获取控件信息。
背景 我的工作中经常手工运行一个windows程序(密码生成工具),获取该程序的计算结果,手工填到登录表单的中.该程序非常久远,已无人维护.根据凡是重复2次以上的工作都应该自动化原则,那么我来写个自动 ...
- C# 调用外部exe程序,出现已停止工作
1.在一个项目中,一个Library 调用另外一个Library的可执行文件时,如果用Process.Start(exe文件)(如果该exe文件没有相关的配置文件,则可以执行成功),但是如果有相关的配 ...
- CAD二次开发--系统找不到指定的文件/应用程序不支持实时(JIT)调试解决办法【即:C#调用外部exe文件在CAD内部执行失败处理办法】
我们知道一个大型的程序系统很多功能之间是相互独立的,因此对于一个exe可执行文件我们可以直接进行调用,丰富我们程序中的功能!但是今天在测试的时候发现,原本调试时候可以调用的exe文件,在打包后竟提示错 ...
- C#中调用外部exe的使用、调用powershell、退出进程、委托和事件
针对几种情况,简单总结学习一下 竟然找到一个超级简单的方法调用exe文件 代码就一句,并且调用的效果特别好.加上后面的.WaitForExit()就是为了等调用的程序运行完后再执行下面的代码,没有后面 ...
- [实用工具]Unity调用外部EXE或Shell命令
版权所有,转载须注明出处! 喜欢火影.喜欢Java.喜欢unity3D.喜欢游戏开发的都可以加入 木叶村Q群:379076227 1.开门见山的需求 有的时候,我们想把一些外部命令集成到 unity ...
- JS中调用本地exe程序
场景 在网页中通过js调用Windows上本地的exe程序, 比如在浏览器中点击调用某播放器的exe程序. url protocol 的方式来实现.用这种方式实现,任何浏览器都兼容, 不会存在只有IE ...
最新文章
- 软件测试响应时间原则,对于性能测试结果的分析原则
- FL计算机软件,FL Studio12水果音乐制作软件
- 利用graphviz模块展示斐波那契数列的递归函数调用图(Python)
- Elasticsearch 教程--入门
- 云原生时代,Java还是Go?
- 复旦 哈工大计算机学院,国内高校中哈工大和上交复旦在一个档次吗?从这些方面看你就知道...
- c++容器共性机制研究
- ICPC 南昌现场赛 K:Tree(dsu on tree + 动态开点线段树)
- 计算机应用基础教程作业脑图 车辆工程学院 冯大昕
- js获取checkbox值的方法
- python十个评委打分_八个评委打分,通过筛选确定最佳评委和最差评委。
- The word is not correctly spelled问题
- react中的虚拟DOM
- 华为第1书:《华为交换机学习指南》全面预售中
- SIM900A短信操作
- 千兆网线水晶头的接法
- 【Android 进阶】开发APP常见的错误
- WUSTOJ 1318: 区间的连通性(Java)
- ARM GICv3 GIC代码分析
- Swin Transformer:层次化视觉Transformer