gpt4 book ai didi

c++ - QT Start explorer进程参数

转载 作者:行者123 更新时间:2023-11-28 06:01:04 26 4
gpt4 key购买 nike

要在 QT 中启动一个应用程序,我可以使用大多数语言通用的过程函数,并且我可以用通常的方式传递参数。但是,我正在尝试启动资源管理器并向它传递一个参数。

所以代码:

QProcess process;
QString test("/select,\"E:\\Data\\testimage.dat\"");
process.startDetached("explorer.exe", QStringList() << test);

应该打开资源管理器并突出显示文件夹 E:\data 中的文件 testimage.dat。但是,它会打开资源管理器并突出显示文档。

所以我在 C# 中尝试了相同的功能:

string test = "/select,\"E:\\Data\\testimage.dat\"";
Process.Start("explorer.exe", test);

这符合我的预期,打开资源管理器并突出显示文件。

从我在这里看到的所有内容来看,QT 代码应该完全相同。我正在使用 startDetached,因为 QT 版本仅在第一次运行时表示它已经在运行。我知道参数与我复制和粘贴的参数相同。

Windows 8.1 和 QT5.2 MSVC10

最佳答案

解决了还是不解。

在命令行中,输入

explorer /select,"E:\Data\testimage.dat"

有效,但是命令

explorer /select,E:\Data\testimage.dat

没有。

该命令行的拷贝也适用于 C#。然而在 QT 中,命令

process.startDetached("EXPLORER.exe", QStringList() << "/select,\"E:\\Data\\testimage.dat\"");

有效,但是当您删除引号时,生成的行可以正常工作

process.startDetached("EXPLORER.exe", QStringList() << "/select,E:\\Data\\testimage.dat");

当您制作测试目标以查看到达目标的参数是什么时,引号在从 C# 或命令行发送时不再存在,但在从 QT 发送时存在。

关于c++ - QT Start explorer进程参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284120/

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