读书人

关于CreatProcess的有关问题

发布时间: 2012-01-10 21:26:50 作者: rapoo

关于CreatProcess的问题
有没有人使用CreatProcess调用adb.exe命令.我每次使用CreatProcess的时候都不成功。
代码如下:

C/C++ code
   m_Command    CString strCommand = _T("D:\\MyProject\\adb.exe");    strCommand.AppendFormat(_T("/C %s"),m_Command);    SECURITY_ATTRIBUTES Sa;    HANDLE hRead,hWrite;    Sa.nLength=sizeof(SECURITY_ATTRIBUTES);    Sa.bInheritHandle=TRUE;    Sa.lpSecurityDescriptor=NULL;    if(!CreatePipe(&hRead,&hWrite,&Sa,0))    {        AfxMessageBox(_T("Error On CreatePipe()"));        return false;    }    STARTUPINFO si;    PROCESS_INFORMATION pi;    si.cb=sizeof(STARTUPINFO);    GetStartupInfo(&si);    si.hStdError=hWrite;    si.hStdOutput=hWrite;    si.wShowWindow=SW_HIDE;    si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;    if (!CreateProcessW(NULL,strCommand.GetBuffer(strCommand.GetLength())        ,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) {            AfxMessageBox(_T("Error on CreateProcess()"));            return false;    }    CloseHandle(hWrite);    char buffer[4096] = {0};    DWORD bytesRead;    while (true) {        if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)            return false;        CString str;        str.Format(_T("%s"),buffer);        Sleep(200);        }

其中m_Command的值是adb devices >D:\\MyProject\\devices.txt
每次都不成功。我想错误是CreatProcess的第二参数lpCommandLine。但是我不知道VC++调用adb命令怎么改正。
有没有人遇到这样的问题。

[解决办法]
自问自答?
[解决办法]
好接分!
顺便提示一下:你的重定位中,文件两边没有使用双引号,对如下的路径,你可能会出问题!
c:\program files\result.txt
[解决办法]
接分接分
[解决办法]

读书人网 >VC/MFC

热点推荐