关于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
[解决办法]
接分接分
[解决办法]