windows c++窗口应用程序静默运行

一、静默运行

1、在代码中加上以下代码,在cmd命令窗口执行xxx.exe时,会静默执行

#pragma comment(linker, "/SUBSYSTEM:WINDOWS")
#pragma comment(linker, "/ENTRY:mainCRTStartup")

2、启动脚本start.bat

::不回显
@echo off
::查看进程是否已启动
tasklist | findstr agent.exe
if %errorlevel%==0 (
	echo The process has started!!!
) else (
    ::后台启动agent.ext,并将命令行参数传给agent.ext,%*表示所有命令行参数
	start /b .\agent.exe %*
    ::等待5s
	timeout /t 5 /nobreak > nul
    ::查看进程是否启动成功, && 表示前一个命令运行成功,后一个命令才运行
	tasklist | findstr agent.exe && echo The process start success. && goto end
	echo The process start failed!!!
)
:end

3、停止脚本stop.bat

@echo off
tasklist | findstr pagent.exe && taskkill /f /fi "IMAGENAME eq pcdn_router_agent.exe"

二、后台运行,通过vbscript控制

'定义变量
Dim wShell, exec
'变量赋值
Set wShell = CreateObject( "WScript.Shell" )
Set exec = wShell.Exec ("cmd.exe /c tasklist | findstr pcdn_router_agent.exe") 
'获取命令返回结果
str1 = exec.StdOut.ReadAll

if str1 <> "" then
	msgbox "Process has started, Do not start repeat!!!"
else
    '获取命令行参数
	Set oArgs = WScript.Arguments
	Dim param
	param = ".\Release\pcdn_router_agent.exe"
    '获取命令行传入的每一个参数
	For Each s In oArgs
		param = param & " " & s
	Next
	Set oArgs = Nothing
    '后台运行命令,0表示后台运行
	wShell.run param,0
	WScript.sleep 5000
	Set exec = wShell.Exec ("cmd.exe /c tasklist | findstr pcdn_router_agent.exe") 
	str1 = exec.StdOut.ReadAll
	if str1 <> "" then
		msgbox "Process start success"
	else
		msgbox "Process start failed!!!"
	end if
end if

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值