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等静默运行,后台运行,不弹窗的解决办法相关推荐

  1. RTX20系列显卡运行网络出现cublas runtime error: the GPU program failed to execute的解决办法

    RTX20系列显卡运行网络出现cublas runtime error: the GPU program failed to execute的解决办法 RTX20系列显卡运行网络出现cublas ru ...

  2. 【Idea无法打开】Idea.bat可以正常打开,双击快捷方式无法打开解决办法

    问题描述: idea突然打不开,Idea.bat可以正常打开,双击快捷方式无法打开 问题分析; 非初次使用Idea,应该是手动误删或者下载的某些文件导致Visual C++文件被破坏 解决办法: 1. ...

  3. Pycharm连接远程服务器、使用Pycharm运行深度学习项目、Pycharm使用总结以及Pycharm报错和解决办法

    Pycharm连接远程服务器,使用Pycharm运行深度学习项目以及Pycharm的使用总结 文章目录 Pycharm连接远程服务器,使用Pycharm运行深度学习项目以及Pycharm的使用总结 前 ...

  4. Flink1.13.2运行在大数据星环TDH集群的jdk1.7上解决办法

    Flink1.13.2运行在大数据TDH集群的jdk1.7上解决办法 TDH集群的JDK是1.7的,而Flink需要运行在JDK1.8以上,建议261版本以上. 出现问题 1.Flink提交到yarn ...

  5. UEFI edk2>edksetup.bat --nt32,build,无法解析的符号解决办法

    结论放前面:更换X64或X32的VS命令行工具. 问题描述: 正在创建库 d:\myworkspace\Build\NT32IA32\DEBUG_VS2008x86\IA32\SecMain.lib ...

  6. eclipse集成tomcat运行web时提示引入jar包的类找不到的解决办法

    在eclipse集成tomcat开发web时,java类引入的jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环境中. ...

  7. WIN7 运行“计算机管理”出现c:\windows\system32\compmgmt.msc没有被指定在...”错误 解决办法...

    我的电脑鼠标右键(即运行C:\Windows\System32\CompMgmtLauncher.exe)点击"管理"出现如下错误 原因是文件msxml3.dll  注册失效导致, ...

  8. nohup java 运行main_在linux下利用nohup来后台运行java程序

    nohup java -jar /etc/deny/denyHttp_fat.jar & nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会 ...

  9. 按键精灵 android版运行异常,按键精灵安卓版 tap、touch命令 不好用的解决办法!...

    用按键精灵手机版写脚本来操作新浪微博APP,在关注列表页自动取消关注,代码如下: If x > -1 And y > -1 Then delay 1000 tap x,y delay 10 ...

  10. linux中运行c找不到conio.h,linux中无 conio.h的解决办法

    conio.h不是C标准库中的头文件,在ISO和POSIX标准中均没有定义.conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函 ...

最新文章

  1. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)
  2. SQL Server 2005 和JBOSS 4 系统运行缓慢--高并发系统探讨(1)
  3. vsftp:425 错误
  4. 计算机python技术基础知识点_python基础--相关计算机基础知识
  5. 2017年会是Serverless爆发之年吗?
  6. Exchange server 2007 出现“0x8004010F”错误的解决办法
  7. mysql配置性能_MySQL配置性能优化
  8. mysql 虚拟表 分页_MySql大表分页(附独门秘技)
  9. 兴业证券:主动偏股型基金评价体系
  10. 串口与Modbus调试工具
  11. vue-better-scroll引用报错[BScroll warn]: Can not resolve the wrapper DOM.
  12. 什么是静态代理和动态代理,两者的区别(笔记)
  13. 遗补:“预防‘磁碟机’病毒”
  14. 并行处理提高工作效率
  15. 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)【转载】
  16. WPF Grid绘制网格线
  17. cocos2d-x Android游戏黑屏解决办法
  18. 微信移动学习平台小程序 后台基于php+mysql
  19. OpenCV38:特征匹配
  20. 可爱的BpXXX-图

热门文章

  1. 《.Ne框架程序设计》随记(3)
  2. ORCLE conn连接报错
  3. ADT(abstract data types)抽象数据类型
  4. 整理发布一些关于VMware vSphere的文档
  5. 云电脑搭配量子计算机,量子计算机和量子模拟器
  6. 加载八叉树索引文件_mysql innodb索引原理
  7. 自定义控件设置宽度_自定义View开篇,必须跨过的一道坎儿
  8. python制作查询工具发给别人使用_Python 制作查询商品历史价格的小工具
  9. fastjson 添加key value_采坑系列—fastjson
  10. 在python中使用最小二乘法画出拟合曲线_Python基于最小二乘法实现曲线拟合示例...