gpt4 book ai didi

c - 如何读取 PowerShell 标准输出

转载 作者:行者123 更新时间:2023-11-30 14:39:56 24 4
gpt4 key购买 nike

我有代码来调用CreateProcess()并获取StdIn和StdOut的句柄。我已经将它与CMD一起使用了,效果很好。但是,我启动了 PowerShell它和 PowerShell 配合得不太好。它基本上利用了我的程序并接管了线程。

这当然让我进行了调试,我发现一旦 ReadFile()函数读取 PowerShell 输出,一切就结束了。有趣。

所以我的问题是:PowerShell 以什么格式将输出发送到 StdOut?

我听到它在“对象”中说话,但它似乎输出原始机器代码。

DWORD WINAPI threadRead(HANDLE *cmdStd_OUT_RD) {
char *chBuff = malloc(READ_BUFFER_SM);
int check = 0;
for (;;) {
dwRead = 0; //Global Variable
check = 0;
memset(chBuff, 0, READ_BUFFER_SM);
puts("Reading..\n");
check = ReadFile(*cmdStd_OUT_RD, chBuff, READ_BUFFER_SM, &dwRead, NULL);
if (check || dwRead > 0) {
printf("Display: %s\n", chBuff);
}
}
return 0;
}

此外,还有另一个对 PowerShell 安全的 Read 函数吗?

编辑:我觉得它正在发送字节,因此可以尝试使用void。之后会更新。

编辑:不,它仍然会接管。猜测 ReadFile() 无法读取其 StdOut。

最佳答案

尝试阅读以下内容: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-6

试试这个:

$OutputVariable = (Shell command) | Out-String

"$params = "/verify $pc /domain:hosp.uhhg.org"
start-process "netdom.exe" $params -WindowStyle Hidden -Wait"

关于c - 如何读取 PowerShell 标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55821580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com