创建新进程,然后在 Windows 10 之后向其发送命令
Create new process, then send it a command later, on Windows 10
我可以很好地创建进程并在启动时向其发送命令。
我的问题:
- 假设创建了一个新进程
- 例如一个新的
cmd
window
- 它的
pid
为 007。
我如何发送另一个命令 - 例如 DIR
- 以便稍后执行?
我知道如何在进程创建期间连接和发送多个命令,但我想知道如何在创建进程后发送命令,例如当我在屏幕上看到 pid 007 的新 cmd
控制台后。
我读到我可以使用 Windows WriteFile 函数,但我不知道。
STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
siStartupInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_FORCEOFFFEEDBACK | STARTF_USESTDHANDLES;
siStartupInfo.wShowWindow = SW_HIDE;
if (CreateProcess(MyApplication, "", 0, 0, FALSE, 0, 0, 0, &siStartupInfo, &piProcessInfo) == FALSE)
// How do i send lets say command dir to my process here.
return 0;
}
通常,Inter-Process 通信是两个进程都必须定义才能工作的东西。如果另一个应用程序不是为接收它而设计的(否则一个程序很容易毁掉另一个程序),您不能只向另一个应用程序发送“命令”。
可能您尝试了 cmd.exe /c dir
,它会立即在 cmd.exe 上执行“dir”,但这之所以有效,是因为 cmd.exe 具有 /c 参数,而不是因为您通常可以这样做。由于cmd可以执行批处理文件,你可以试试this or this or this.
一般来说,在两个应用程序就发送内容达成一致后,下一步就是如何传输数据。在 Windows 中,这可以用 File Mapping, Sockets, Pipes 等
来完成
我可以很好地创建进程并在启动时向其发送命令。
我的问题:
- 假设创建了一个新进程
- 例如一个新的
cmd
window - 它的
pid
为 007。
我如何发送另一个命令 - 例如 DIR
- 以便稍后执行?
我知道如何在进程创建期间连接和发送多个命令,但我想知道如何在创建进程后发送命令,例如当我在屏幕上看到 pid 007 的新 cmd
控制台后。
我读到我可以使用 Windows WriteFile 函数,但我不知道。
STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
siStartupInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_FORCEOFFFEEDBACK | STARTF_USESTDHANDLES;
siStartupInfo.wShowWindow = SW_HIDE;
if (CreateProcess(MyApplication, "", 0, 0, FALSE, 0, 0, 0, &siStartupInfo, &piProcessInfo) == FALSE)
// How do i send lets say command dir to my process here.
return 0;
}
通常,Inter-Process 通信是两个进程都必须定义才能工作的东西。如果另一个应用程序不是为接收它而设计的(否则一个程序很容易毁掉另一个程序),您不能只向另一个应用程序发送“命令”。
可能您尝试了 cmd.exe /c dir
,它会立即在 cmd.exe 上执行“dir”,但这之所以有效,是因为 cmd.exe 具有 /c 参数,而不是因为您通常可以这样做。由于cmd可以执行批处理文件,你可以试试this or this or this.
一般来说,在两个应用程序就发送内容达成一致后,下一步就是如何传输数据。在 Windows 中,这可以用 File Mapping, Sockets, Pipes 等
来完成