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.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 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
w-script
本文转载自:https://www.cnblogs.com/xuhuajie/p/11245708.html
本文转载自:
https://my.oschina.net/u/4349898/blog/3450766
DIM objShell
set objShell = wscript.createObject("wscript.shell")
iReturn = objShell.Run("cmd.
exe
/C C:\gz\gz.
exe
", 0, TRUE)
注:以上代码中
尽管
批处理
文件在操作系统方面与复古相似,但它们是完成任务的最佳途径之一。 如果你每天都要求你
运行
一些预定义的命令,那么控制台的窗口很烦人,特别是当你确定它们是完美的时候,并且不会犯任何错误。 在本指南中,我们将学习如何以后台模式
静默
运行
批处理
文件并隐藏控制台窗口。在Windows上
静默
运行
批处理
文件如果您想要
运行
一个简单的
批处理
文件,则可以创建另一个
批处理
文件,然后按如下所示键入该命令START...
其第一个参数相当于system函数的参数,第二个参数可以设置窗口是否显示,SW_HIDE这个宏表示隐藏窗口,例如:
Win
Exe
c(cmd.c_str(),SW_HIDE);//cmd(string类型)中为我们要调用的程序名及其参数, 如 “dir *.
exe
”
但是这个有一个问题,这个函数创建...
os.system函数是一个非常常用的系统调用函数,它的作用是执行一个命令行语句。当你需要在Python脚本中执行一个外部命令时,就可以使用os.system函数。比如,在Windows系统下,我们可以通过os.system(“dir”)来执行dir命令,这个命令会列出当前目录下的文件和文件夹。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT。
对于很多想要学习自动化的小白而言,环境的搭建,一直以来都是很麻烦的事情,本文完全基于Python语言来进行的自动化环境搭建,包括python3、Selenium、WebDriver等一系列内容的搭建。环境搭建之Python篇:目前测试行业应用的编程语言,当属Python为首。python现在主流应该是3.7(或者3.8,不过这不重要)。安装Python是一件很简单的事情,在官网选择对应系统的版本直...
本文目录一.开发环境MDK5以及stm32包的安装二.新建工程三.简单的stm32程序的编写四.编译结果展示
一.开发环境MDK5以及stm32包的安装
1.MDK-5.10软件的安装过程
1.左键双击打开压缩包,进入MDK-5.10安装界面
2.点击Next
3.点击I agree和Next
4.选择安装路径,注意文件名不要包含中文
5.点击Next开始安装,安装完成后点击finish
6.安装结束后,会自动打开任务窗口,点击OK
这里即完成MDK-5.10的安装。
2.完成如下三个pack的
进程STARTUPINFO可以隐藏控制台窗口:si = subprocess.STARTUPINFO()si.dwFlags |= subprocess.STARTF_USESHOWWINDOW#si.wShowWindow = subprocess.SW_HIDE # defaultsubprocess.call('taskkill /F /IM
exe
name.
exe
', startupinf...
请注意,这种方法要求系统已经安装了VBScript解释器。在大多数Windows系统上,VBScript解释器已经预装,因此这应该可以正常工作。如果你遇到任何问题,请确保系统已正确安装VBScript解释器。要在Windows中
运行
Python脚本而不显示CMD窗口,可以使用VBScript来实现。现在,当你
运行
这个VBScript脚本时,它将以隐藏CMD窗口的方式
运行
Python脚本。