cmd静默运行_exe、msi、dos、bat等静默运行,后台运行,不弹窗的解决办法
1、exe程序本身不想显示,
在源码开头中加入 #pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
2、打开其他的exe
2.1使用WinExec(LPCSTR, UInt)函数
其第一个参数相当于system函数的参数,第二个参数可以设置窗口是否显示,SW_HIDE这个宏表示隐藏窗口,例如:
WinExec(cmd.c_str(),SW_HIDE);//cmd(string类型)中为我们要调用的程序名及其参数, 如 “dir *.exe ”
但是这个有一个问题,这个函数创建完这个进程后就返回了,也就是说它返回后,该进程不一定已经结束
另外,第一个参数不能有空格
2.2 使用ShellExecute函数
ShellExecute(NULL,"open","calc.exe","","", SW_HIDE);
2.3 使用ShellExecuteEx函数
ShellExecuteEx(SHELLEXECUTEINFO*)函数
其参数是一个结构体,具体作用还是类似于system的参数,使用例子:
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; //确保返回hProcess用于了解打开的东西的生命周期
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = cmd.c_str();//调用的程序名
ShExecInfo.lpParameters = par.c_str();//调用程序的命令行参数
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;//窗口状态为隐藏
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);//等到该进程结束 ,当然可以不等待。。
CloseHandle(ShExecInfo.hProcess) ; //释放资源
3.CreateProcess函数
STARTUPINFO si;
PROCESS_INFORMATION pi;
LPTSTR szCmdline= _tcsdup(TEXT("MyChildProcess"));
ZeroMemory(&si, sizeof(si));
si.cb= sizeof(si);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_HIDE;
ZeroMemory(&pi, sizeof(pi));//Start the child process.
if (!CreateProcess(NULL, //No module name (use command line)
szCmdline, //Command line
NULL, //Process handle not inheritable
NULL, //Thread handle not inheritable
FALSE, //Set handle inheritance to FALSE
CREATE_NO_WINDOW, //No Console window
NULL, //Use parent's environment block
NULL, //Use parent's starting directory
&si, //Pointer to STARTUPINFO structure
&pi) //Pointer to PROCESS_INFORMATION structure
)
{
printf("CreateProcess failed (%d)./n", GetLastError());return;
}//Wait until child process exits.
WaitForSingleObject(pi.hProcess, INFINITE);//Close process and thread handles.
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
3、打开msi文件(隐藏安装过程)
可以通过bat文件,输入
xxx.msi /qn
q意思是quiet,n意思是没有用户交互
如果通过shell打开的话,注意msi只是个安装文件,安装程序为msiexec.exe
system("msiexec.exe /i \"E:\\vcredist_x86\\vcredist.msi\" /qn"); (这个会弹一个控制台的框system本身)
下面的方法可以啥都不弹。
SHELLEXECUTEINFO ShExecInfo = { 0};
ShExecInfo.cbSize= sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask=SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd=NULL;
ShExecInfo.lpVerb=NULL;
ShExecInfo.lpFile= L"Msiexec.exe";//调用的程序名
ShExecInfo.lpParameters = L"/i \"E:\\vcredist_x86\\vcredist.msi\" /qn";//调用程序的命令行参数
ShExecInfo.lpDirectory =NULL;
ShExecInfo.nShow= SW_HIDE;//窗口状态为隐藏
ShExecInfo.hInstApp =NULL;if (!ShellExecuteEx(&ShExecInfo))
{
printf("%d", GetLastError());
}
WaitForSingleObject(ShExecInfo.hProcess,30000);
CloseHandle(ShExecInfo.hProcess);
4、bat文件
bat文件运行时会有一个黑黑的cmd.exe窗口,很吓人,就算用start/min命令去运行bat文件,电脑的任务栏下仍然会有相关的图标,怎么让bat文件在后台无声无息无影无形地运行呢?以下的办法可以达到你的目的。
方法一、
bat里有隐藏窗口的命令,很简单,只需要在代码头部加一段代码就可以了。
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
::下面是你自己的代码。
方法二、
在你批处理的相同目录下新建一个记事本,里面输入:
DIM objShell set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C c:\1.bat", 0, TRUE)
(其中win.bat为你自己的批处理名字,自己改)
然后把这个记事本保存为后缀名为.vbe的文件,到时候你只要运行这个vbe文件就达到目的了!
可以写的简单点:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c c:\1.bat",0
或
CreateObject("WScript.Shell").Run "cmd /c c:\1.bat",0
(这种写法很多杀软报毒, 需要替换参数0)
最后那个0是指窗口参数,用法为:
0 隐藏窗口并激活另一窗口。
1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。
2 激活窗口并以最小化显示该窗口。
3 激活窗口并以最大化显示该窗口。
4 按窗口最近的大小和位置显示。活动窗口保持活动。
5 以当前大小和位置激活并显示窗口。
6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
7 最小化显示窗口。活动窗口保持活动。
8 以当前状态显示窗口。活动窗口保持活动。
9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
cmd静默运行_exe、msi、dos、bat等静默运行,后台运行,不弹窗的解决办法相关推荐
- RTX20系列显卡运行网络出现cublas runtime error: the GPU program failed to execute的解决办法
RTX20系列显卡运行网络出现cublas runtime error: the GPU program failed to execute的解决办法 RTX20系列显卡运行网络出现cublas ru ...
- 【Idea无法打开】Idea.bat可以正常打开,双击快捷方式无法打开解决办法
问题描述: idea突然打不开,Idea.bat可以正常打开,双击快捷方式无法打开 问题分析; 非初次使用Idea,应该是手动误删或者下载的某些文件导致Visual C++文件被破坏 解决办法: 1. ...
- Pycharm连接远程服务器、使用Pycharm运行深度学习项目、Pycharm使用总结以及Pycharm报错和解决办法
Pycharm连接远程服务器,使用Pycharm运行深度学习项目以及Pycharm的使用总结 文章目录 Pycharm连接远程服务器,使用Pycharm运行深度学习项目以及Pycharm的使用总结 前 ...
- Flink1.13.2运行在大数据星环TDH集群的jdk1.7上解决办法
Flink1.13.2运行在大数据TDH集群的jdk1.7上解决办法 TDH集群的JDK是1.7的,而Flink需要运行在JDK1.8以上,建议261版本以上. 出现问题 1.Flink提交到yarn ...
- UEFI edk2>edksetup.bat --nt32,build,无法解析的符号解决办法
结论放前面:更换X64或X32的VS命令行工具. 问题描述: 正在创建库 d:\myworkspace\Build\NT32IA32\DEBUG_VS2008x86\IA32\SecMain.lib ...
- eclipse集成tomcat运行web时提示引入jar包的类找不到的解决办法
在eclipse集成tomcat开发web时,java类引入的jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环境中. ...
- WIN7 运行“计算机管理”出现c:\windows\system32\compmgmt.msc没有被指定在...”错误 解决办法...
我的电脑鼠标右键(即运行C:\Windows\System32\CompMgmtLauncher.exe)点击"管理"出现如下错误 原因是文件msxml3.dll 注册失效导致, ...
- nohup java 运行main_在linux下利用nohup来后台运行java程序
nohup java -jar /etc/deny/denyHttp_fat.jar & nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会 ...
- 按键精灵 android版运行异常,按键精灵安卓版 tap、touch命令 不好用的解决办法!...
用按键精灵手机版写脚本来操作新浪微博APP,在关注列表页自动取消关注,代码如下: If x > -1 And y > -1 Then delay 1000 tap x,y delay 10 ...
- linux中运行c找不到conio.h,linux中无 conio.h的解决办法
conio.h不是C标准库中的头文件,在ISO和POSIX标准中均没有定义.conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函 ...
最新文章
- Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)
- SQL Server 2005 和JBOSS 4 系统运行缓慢--高并发系统探讨(1)
- vsftp:425 错误
- 计算机python技术基础知识点_python基础--相关计算机基础知识
- 2017年会是Serverless爆发之年吗?
- Exchange server 2007 出现“0x8004010F”错误的解决办法
- mysql配置性能_MySQL配置性能优化
- mysql 虚拟表 分页_MySql大表分页(附独门秘技)
- 兴业证券:主动偏股型基金评价体系
- 串口与Modbus调试工具
- vue-better-scroll引用报错[BScroll warn]: Can not resolve the wrapper DOM.
- 什么是静态代理和动态代理,两者的区别(笔记)
- 遗补:“预防‘磁碟机’病毒”
- 并行处理提高工作效率
- 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)【转载】
- WPF Grid绘制网格线
- cocos2d-x Android游戏黑屏解决办法
- 微信移动学习平台小程序 后台基于php+mysql
- OpenCV38:特征匹配
- 可爱的BpXXX-图
热门文章
- 《.Ne框架程序设计》随记(3)
- ORCLE conn连接报错
- ADT(abstract data types)抽象数据类型
- 整理发布一些关于VMware vSphere的文档
- 云电脑搭配量子计算机,量子计算机和量子模拟器
- 加载八叉树索引文件_mysql innodb索引原理
- 自定义控件设置宽度_自定义View开篇,必须跨过的一道坎儿
- python制作查询工具发给别人使用_Python 制作查询商品历史价格的小工具
- fastjson 添加key value_采坑系列—fastjson
- 在python中使用最小二乘法画出拟合曲线_Python基于最小二乘法实现曲线拟合示例...