我有个Dos程序,在cmd中命令行的运行方式是:decd.exe -i c:\file1.in -o d:\file2.out,我试图在另外一个程序中执行并将-i c:\file1.in -o d:\file2.out传递给它。我的程序如下:
ShellExecute(NLL,"Open","E:\\decd.exe","-i c:\file1.in -o d:\file2.out",NULL, SW_SHOWNORMAL);但是decd.exe程序并不能正确执行!
我又试图通过CreateProcess调用,程序如下:
CreateProcess("E:\\decd.exe","-i c:\file1.in -o d:\file2.out", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);但是同样decd.exe程序并不能正确执行!
如果去掉传入参数-i c:\file1.in -o d:\file2.out则decd.exe程序可以运行!请各位帮忙啊!!
ShellExecute(NLL,"Open","E:\\decd.exe","-i c:\file1.in -o d:\file2.out",NULL, SW_SHOWNORMAL);但是decd.exe程序并不能正确执行!
我又试图通过CreateProcess调用,程序如下:
CreateProcess("E:\\decd.exe","-i c:\file1.in -o d:\file2.out", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);但是同样decd.exe程序并不能正确执行!
如果去掉传入参数-i c:\file1.in -o d:\file2.out则decd.exe程序可以运行!请各位帮忙啊!!
解决方案 »
- 如何把Excel表中的数据导入并使用
- 怎么在判断一个注册表项是否存在?
- 怎么样在单文档做出产生多个窗口?
- 如何从VC应用程序中获取VB应用程序的FORM中的ActiveX控件的IDispatch接口
- 请问诸位关于动态数组的问题!
- 如何在另一台机器打开或关闭执行程序
- 指针类型问题??
- 怎样用ATL开发网络程序?
- 如何在工程中添加多个文件(错误c1010 unexpected end of file while looking for precompiled header directive)
- ReadConsoleInput不能读取控制台输入信息?
- !!!!!!如何使用xslt判断xml文件中一个节点是否存在,在线等
- 有没有办法在内存创建文件?
ShellExecute(NLL,"Open","E:\\decd.exe","-i c:\\file1.in -o d:\\file2.out",NULL, SW_SHOWNORMAL);
CreateProcess("E:\\decd.exe","-i c:\\file1.in -o d:\\file2.out", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
=>CreateProcess(NULL,"e:\\decd.exe -i c:\\file1.in -o d:\\file2.out", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
sShellExecuteInfo.fMask |= SEE_MASK_UNICODE;
#endif sShellExecuteInfo.lpVerb = TEXT("open");
sShellExecuteInfo.lpFile = TEXT("TLearnWare.exe"); if(nBootMode==0x01)
{
sShellExecuteInfo.lpParameters= TEXT("-run");
}
else if(nBootMode==0x02)
{
sShellExecuteInfo.lpParameters= TEXT("-exit");
} sShellExecuteInfo.lpDirectory = TEXT(".\\");
sShellExecuteInfo.nShow = SW_SHOW; bRetVal = ::ShellExecuteEx(&sShellExecuteInfo);
ShellExecute(NULL, NULL, "c:\\winnt\\notepad.exe", "d:\\11.txt", NULL, SW_SHOWNORMAL);
更方便了或者更简单的, 用winexec
WinExec("c:\\winnt\\notepad.exe d:\\11.txt", SW_SHOWNORMAL);
Function: CmdExec Summary: Execute an EXE Win32 program by creating a process and
running the specified EXE in it. Args: LPTSTR szCmd,
Entire command line (eg, "notepad.exe mytext.txt") Returns: BOOL
TRUE if succeed; FALSE if fail.
F---F---F---F---F---F---F---F---F---F---F---F---F---F---F---F---F---F---F-F*/
BOOL CmdExec(
LPTSTR szCmd)
{
BOOL bOk;
STARTUPINFO si;
PROCESS_INFORMATION pi; // Execute the command with a call to the CreateProcess API call.
memset(&si,0,sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.wShowWindow = SW_SHOW;
bOk = CreateProcess(NULL,szCmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess); return bOk;
}