如何解析 ShellExecute 函数中的 tshark 参数
How to parse tshark arguments in ShellExecute function
我想通过 ShellExecute 从 C++ 脚本调用 tshark.exe。有什么方法可以解析应用程序的 cmd 参数吗?
例如像这样指定输出文件
tshark -w output.pcap
这是代码
#include <Windows.h>
#include <shellapi.h>
int main()
{
ShellExecute(NULL, "open", "tshark.exe", NULL, "C:\Program Files\Wireshark", SW_SHOWDEFAULT);
return 0;
}
ShellExecute()
的第 4 个参数将命令行参数传递给新进程,例如:
ShellExecute(NULL, "open", "tshark.exe", "-w output.pcap", "C:\Program Files\Wireshark", SW_SHOWDEFAULT);
不过,你真的应该使用 CreatProcess()
来代替(ShellExecute()
无论如何都会调用它):
STARTUPINFO si = {};
PROCESS_INFORMATION pi = {};
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWDEFAULT;
char cmd[] = "tshark.exe -w output.pcap";
if (CreateProcessA(NULL, cmd, NULL, NULL, FALSE, 0, NULL, "C:\Program Files\Wireshark", &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
我想通过 ShellExecute 从 C++ 脚本调用 tshark.exe。有什么方法可以解析应用程序的 cmd 参数吗? 例如像这样指定输出文件
tshark -w output.pcap
这是代码
#include <Windows.h>
#include <shellapi.h>
int main()
{
ShellExecute(NULL, "open", "tshark.exe", NULL, "C:\Program Files\Wireshark", SW_SHOWDEFAULT);
return 0;
}
ShellExecute()
的第 4 个参数将命令行参数传递给新进程,例如:
ShellExecute(NULL, "open", "tshark.exe", "-w output.pcap", "C:\Program Files\Wireshark", SW_SHOWDEFAULT);
不过,你真的应该使用 CreatProcess()
来代替(ShellExecute()
无论如何都会调用它):
STARTUPINFO si = {};
PROCESS_INFORMATION pi = {};
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWDEFAULT;
char cmd[] = "tshark.exe -w output.pcap";
if (CreateProcessA(NULL, cmd, NULL, NULL, FALSE, 0, NULL, "C:\Program Files\Wireshark", &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}