首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC中怎么调用.bat文件

2012-04-02 
VC中如何调用.bat文件?RT。我调用了类似下面的方法,无法执行成功。STARTUPINFO siPROCESS_INFORMATION piC

VC中如何调用.bat文件?
RT。


我调用了类似下面的方法,无法执行成功。

STARTUPINFO si;
PROCESS_INFORMATION pi;
CString sbuf,smy_sql;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );


if( !CreateProcess( NULL, // No module name (use command line).
(LPSTR)(LPCTSTR)strCmd, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
NORMAL_PRIORITY_CLASS, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
return;
}
// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

[解决办法]

C/C++ code
STARTUPINFO si = {sizeof(si)};    PROCESS_INFORMATION pi = {0};    TCHAR szPath[MAX_PATH] = _T("F:\\11.bat");    if(!CreateProcess(NULL, szPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))    {        CloseHandle(pi.hThread);        CloseHandle(pi.hProcess);    }
[解决办法]
if(!CreateProcess(NULL, szPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
-->
if(CreateProcess(NULL, szPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
Sorry,if写错了
[解决办法]
有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。

//调用计算器   
ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL);   
//调用记事本   
ShellExecute(NULL,"open","NOTEPAD.EXE",NULL,NULL,SW_SHOWNORMAL);
[解决办法]
探讨

有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。

//调用计算器
ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL);
//调用记事本
ShellExecute(NULL,"open","NOTEPAD.EXE",NULL,NULL,SW_SHOW……

[解决办法]
System("file.bat");
前提是同文件夹
[解决办法]
WinExec("cmd.bat", SW_HIDE);
绝招~
[解决办法]
system("c:\\1.bat") 可以成功

热点排行