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

1282

被折叠的 条评论
为什么被折叠?



