方法:
SHELLEXECUTEINFO ShellInfo;
memset(&ShellInfo, 0, sizeof(ShellInfo));
ShellInfo.cbSize = sizeof(ShellInfo);
ShellInfo.hwnd = NULL;
ShellInfo.lpVerb = L"open";
ShellInfo.lpFile = L"test.exe"; // 此处写执行文件的绝对路径
ShellInfo.lpParameters = L"para1 para2";//参数,多个参数用空格隔开(para1和para2是字符串);参数也可以是一个LPCWSTR类型的变量,写法:ShellInfo.lpParameters = 变量名;
ShellInfo.nShow = SW_SHOWNORMAL;
ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
BOOL bResult = ShellExecuteEx(&ShellInfo);//调用exe程序
总结:我在使用这种方法给exe程序传递一个json字符串时,由于json串中包含了双引号,导致传输失败。因为给exe传递的参数默认是在两个双引号之间的值。包含多个双引号的字符串,只能识别前两个字符串之间包含的内容。