c++ - 如何在 ShellExecute 函数中解析 tshark 参数
问题描述
我想通过 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;
}
解决方案
第 4 个参数ShellExecute()
将命令行参数传递给新进程,例如:
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);
}
推荐阅读
- c - pthread_create 在第三个参数上需要哪种类型
- java - Java - Thymeleaf - HTML:使用开关大小写的颜色字母:不需要的段落/换行符
- javascript - 如何使用所有 ascii 字符生成所有可能的字符串到一定长度
- html - 折叠 flex-column 导航时折叠动画看起来很奇怪
- ansible - Ansible fech 失败:“msg”:“校验和不匹配”
- python - pip3 在 ubuntu 上安装 django
- javascript - 获取我的机器人发送的消息的消息 ID
- c++ - 是否可以让字符串函数(例如 strstr )在 C++ 中从头到尾考虑数组?
- c++ - 如何跳过一行标准输入?
- linux - 实现系统调用:无法从用户接收参数值