ฉันได้เพิ่มตำแหน่ง 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 นั้นผิด
หวังว่าจะเป็นรุ่นที่ถูกต้อง ขอบคุณล่วงหน้า.