|
我使用匿名管道连接ADB却不知道有没有执行成功。
有么有人可以帮我看一下。
//这一段是连接的代码
WCHAR szSysDir[1024];
CString szCommand;
// 取得系统目录
GetSystemDirectory(szSysDir, sizeof(szSysDir));
// 格式化命令行参数
szCommand.Format(L"D:\\adb\\adb.exe connect 127.0.0.1:21503", szSysDir);
SECURITY_ATTRIBUTES saAttr;
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
saAttr.bInheritHandle = TRUE;
saAttr.lpSecurityDescriptor = NULL;
//创建管道,用于重定向ping程序的输出信息
if (!CreatePipe(&hRead, &hWrite, &saAttr, 0))
{
return 0;
}
//设置创建子进程的参数
PROCESS_INFORMATION pi;
STARTUPINFO si = { sizeof(STARTUPINFO) };
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;//Startf_UseStdHandles | StartF_UseShowWindow
si.hStdOutput = hWrite;
si.hStdError = hWrite;
si.wShowWindow = SW_HIDE;
//创建子进程
LPWSTR lpCommand = szCommand.GetBuffer(szCommand.GetLength());
if (CreateProcess(NULL, lpCommand, NULL, NULL, TRUE, 0, NULL, szSysDir, &si, &pi))
{
//从管道中读取数据
DWORD dwTotalBytes = 0;
DWORD dwReadBytes;
char pBuf[1024] = { 0 };
wchar_t* pTemp;
memset(pBuf, 0, sizeof(pBuf));
ReadFile(hRead, pBuf, sizeof(pBuf) - 1, &dwReadBytes, NULL);
pTemp = char2wchar(pBuf);
Edit_ReplaceSel(hMsg, pTemp);
}
//这一段是执行shell命令的代码
DWORD dwWrite = 0;
wchar_t commond[] = _T("D:\\adb\\adb.exe shell input tap 200 100");
bool bSuccess;
bSuccess = WriteFile(hWrite, commond, sizeof(commond), &dwWrite, NULL);
连接是成功的,但是执行shell命令没有反应。如果有会的人可以教我下吗?谢谢。
|
|