如何使用createprocess在PATH中执行adb程序?

我已将adb位置添加到PATH中 。 在我的C项目中,我想执行流动的cmd:

char *broadcastStop = "adb shell am broadcast -a NotifyServiceStop"; char *forward = "adb forward tcp:12582 tcp:10086"; char *broadcastStart = "adb shell am broadcast -a NotifyServiceStart"; 

我可以使用system()运行上面的代码。 现在我想运行那些隐藏控制台的人。 我发现了很多类似的问题,并告诉CreateProcess可以做到。

这是我的代码:

 void system_hide(char *cmd) { STARTUPINFOW si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); if (CreateProcessW(NULL, cmd, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi)) { WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } } 

它运行不正常,

我想CreateProcess的参数是错误的。

希望有一个正确的版本。 提前致谢。

Interesting Posts