cmd执行bat结果不回显_pb调用bat批处理文件的cmd对话框怎么不显示

本文介绍了一段C/C++代码,用于执行bat批处理文件,并在需要时选择隐藏cmd执行窗口。通过CreateProcess函数调用bat文件,并使用STARTUPINFO结构体控制窗口显示状态。

C/C++ code//====================================================================

// 函数: of_executewait

//--------------------------------

// 描述: 调用其他程序,并用指定参数执行

//--------------------------------

// 参数:

// value string as_executable 执行命令

// value string as_commandparm 命令参数

// value boolean ab_yield 等待返回时,是否释放cpu

// value boolean ab_show 是否显示执行窗口

//--------------------------------

// 举例:

// of_executewait(ls_command,ls_comm_para,TRUE,FALSE)

//--------------------------------

// 返回: Boolean

//--------------------------------

// 作者: Joshua Zou 日期: 2008年02月18日

//--------------------------------

// Copyright (c) 2002-2007 , All rights reserved.

//--------------------------------

// 修改历史:

//

//====================================================================

ULong lpExitCode

Boolean bRet

STARTUPINFO sinfo

PROCESS_INFORMATION pinfo

sinfo.cb = 4 * 17

sinfo.lpReserved = 0 // NULL

sinfo.lpDesktop = 0 // NULL

sinfo.lpTitle = 0 // NULL

sinfo.dwX = 0

sinfo.dwY = 0

sinfo.dwXSize = 0

sinfo.dwYSize = 0

sinfo.dwXCountChars = 0

sinfo.dwYCountChars = 0

sinfo.dwFillAttribute = 0

sinfo.dwFlags = 1

sinfo.cbreserved2 = 0

sinfo.lpReserved2 = 0

sinfo.hStdInput = 0

sinfo.hStdOutput = 0

sinfo.hStdError = 0

If ab_show Then

sinfo.wShowWindow = SW_NORMAL

Else

sinfo.wShowWindow = SW_HIDE // 默认隐藏执行窗口

End If

bRet = CreateProcess(as_executable," " + as_commandparm,0,0,False,32,0,0,sinfo,pinfo)

If Not bRet Then

MessageBox(MS_TITLE, "创建子进程错误,错误码:"+String(GetLastError()))

Return False

End If

Do

//等待结束

WaitForSingleObject(pinfo.hProcess,0)

bRet = GetExitCodeProcess ( pinfo.hProcess, lpExitCode )

If ab_yield Then Yield() //等待返回循环中,释放cpu

Loop Until ( bRet = True And lpExitCode <> 259 )

Return True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值