南理马德华 发表于 2022-11-16 15:07:12

shellexecute在部分电脑上使用出错

急切求助大佬!!!!!!!
我通过shellexecute运行自己写的程序exe
std::wstring operate = QString("runas").toStdWString();
std::wstring path = m_workDir.toStdWString();
std::wstring file = QString(m_workDir + "/main.exe").toStdWString();
ShellExecute(NULL, operate.c_str(), file.c_str(), NULL, path.c_str(), SW_SHOWNORMAL);
shellexecute返回值大于32
但是那个exe不运行,有时候在进程管理器中闪了一下又退出了,会弹出windows弹出main.exe运行出错
但是我手动双击我的exe,是能够正常运行的

南理马德华 发表于 2022-11-16 15:10:38

在部分电脑上会出现上述问题,主要是win7系统电脑

jackz007 发表于 2022-11-16 15:49:07

南理马德华 发表于 2022-11-16 15:10
在部分电脑上会出现上述问题,主要是win7系统电脑

       所以,关键是,你应该在运行出问题的电脑上实际运行被 shellexecute 运行的程序,并观察其表现。你可以写一个程序,专门显示命令行的,看看你通过 shellexecute 传递给程序的命令行是否符合预期。

南理马德华 发表于 2022-11-16 16:02:36

jackz007 发表于 2022-11-16 15:49
所以,关键是,你应该在运行出问题的电脑上实际运行被 shellexecute 运行的程序,并观察其表现 ...

传入的参数和我预期的文件地址是相同的

南理马德华 发表于 2022-11-16 16:03:54

jackz007 发表于 2022-11-16 15:49
所以,关键是,你应该在运行出问题的电脑上实际运行被 shellexecute 运行的程序,并观察其表现 ...

在网上遇到同样问题的人说传入参数倒数第二个不能是空解决问题,但是我边传入地址不是空。
页: [1]
查看完整版本: shellexecute在部分电脑上使用出错