草庐IT

c++ - QProcess with non-wrapped pipe symbol |在参数列表中

你好,亲爱的stackoverflow用户,尝试在Windows上使用QProcess运行命令时遇到问题。除了对一个论点的解释外,一切正常。我正在调用vcbuild.exe来构建visualstudio2008解决方案。调用看起来像这样:QStringprogram="cmd.exe";QStringListarguments;arguments问题是,像“Debug|Win32”这样的名称是许多解决方案的常见配置名称,我想以编程方式构建它,调用我使用QProcess的程序-但符号“|”被视为管道符号,windows说:“命令Win32错误或找不到。”(orig."DerBefehl"

c++ - 是否可以使用 Qt 类枚举网络根?

Qt文件API类在Windows上正确处理网络文件夹路径。但是我找不到枚举网络根目录的方法(可用的网络驱动器和计算机列表)。有没有什么方法可以不使用WinAPI而只使用Qt类来做到这一点? 最佳答案 恐怕,你能得到的最好的是QStorageInfo来自QtSystems。allLogicalDrives:constQStringListThispropertyholdsthelistofalldrives.Returnsalistofalllogicaldrivesorvolumes,oranemptylistifnodrivesa

windows - 如何申请管理员权限?

应用程序必须以管理员权限运行。问用户是怎样的?如何验证他是否同意?我如何知道是否已经以管理员身份运行应用程序?按照说明制作here由用户ChrisW67提供。结果收不到。如果可能,举一个“Helloworld”项目的例子。P.SWindows7。我正在用QtCreator编写。Qt5.2 最佳答案 免责声明:为什么您的应用程序需要管理员权限?在大多数情况下,现代应用程序应该能够避免这种情况。可以将服务用于提升的操作。我知道您正在使用Qt。我目前无法使用此工具,但这里有一些常规选项。本质上,您需要修改在编译时嵌入到二进制文件中的lis

c++ - 检测移除打开的串口设备(Qt/Windows)

我有一个Qt应用程序,它通过串口与加密狗通信(它是一个FTDI芯片)。我轮询QSerialPortInfo::availablePorts()以检测何时添加或删除端口,然后向加密狗发送一个空行以识别它(我的加密狗用它的ID对此做出响应,我指望它对99%的其他设备无害)。一切正常,除了如果您在连接处于事件状态时移除加密狗,连接似乎没有关闭并且端口仍在QSerialPortInfo::中返回availablePorts().有谁知道在我连接到串行加密狗时如何检测它的移除(除了像ping之类的黑客攻击)。我试过监听QSerialPort发出的所有信号(error()、readChannelF

c++ - Windows:在没有命令提示符的情况下使用 QProcess::execute 执行 ping 命令

我正在尝试使用C++和Qt5确定是否可以使用此命令访问特定的IP地址:intc=QProcess::execute("ping-n1www.google.de");qDebug()它工作正常,但命令提示符会显示一秒钟。有没有办法在没有此窗口的情况下让ping进程在后台运行? 最佳答案 如果我没记错的话,如果您将execute更改为start,它不会显示命令窗口。如果这不起作用,您可能想看看使用QNetwork自己测试可达性,这应该不会太难。 关于c++-Windows:在没有命令提示符的

windows - Windows 上通过 QUdpSocket 的链路本地多播

我正在尝试使用链路本地多播发送UDP报文。我正在使用提供QUdpSocket的Qt。我能够在Linux上执行此操作,但无法让代码在Windows上运行。我的第一个代码是这样的:udp.writeDatagram(QByteArray("helloworld"),QHostAddress("FF02::1"),4321);它适用于Linux但不适用于Windows。我什至尝试以管理员权限运行该应用程序。writeDatagram()返回两个系统上电报的大小。我找到的唯一建议是在特定网络接口(interface)上发送电报。我的这种方法代码:foreach(constQHostAddres

c++ - 从 C++ 中的 WMI(Win32_LogicalDisk 类)调用 Chkdsk -> 'Parameter is not valid'

我正在尝试从C++中的WMI运行Chkdsk(我正在使用QtFramework)。“ExecMethod”返回“参数无效”。我已经根据http://msdn.microsoft.com/en-us/library/cc250766.aspx设置了参数->我正在使用半同步调用。我正在使用MSDN文档(Win32_LogicalDisk、WMIC++应用程序示例、Win32_Volume,...)我也尝试过使用Win32_Volume,但效果不佳。我的部分代码:IWbemLocator*pLoc=NULL;HRESULThres=CoCreateInstance(CLSID_WbemLoc

c++ - Qt 5 安装失败

长话短说,这是我在尝试安装Qt5.4时得到的结果:我的系统是Windows8.1x64,我的所有驱动器上都有足够的空间。到目前为止我尝试了什么:同时使用离线和在线安装程序重置%TMP%/%TEMP%环境变量(为此我使用tmpfs分区)以管理员身份运行安装程序 最佳答案 根据评论讨论,这似乎意味着您的系统上的某些损坏可能会触发此故障,因为重新安装您的Windows8.1似乎已使此工作正常。供将来引用:一般来说,您可以通过尝试安装32位版本而不是64位版本来调试此问题。如果这不起作用,您可以选择最小安装。如果这不起作用,您可以尝试其他编

c++ - 使用 libsodium 构建一个简单的项目

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(39个答案)关闭6年前。我使用libsodium创建了一个非常简单的Qt项目。(我可以创建相同的项目并使用VisualStudio2010/2013构建良好。)但是QtCreator无法构建:main.obj:-1:error:LNK2019:unresolvedexternalsymbolsodium_initreferencedinfunctionmain这是我的项目:testSodium.pro:QT+=cor

windows - QSettings 用反斜杠替换斜杠(注册表)

我使用QSettings读取注册表。我想阅读的关键是:HKEY_LOCAL_MACHINE\SYSTEM\Setup\SourceOS(Updatedon8/1/201502:45:41)由于键名SourceOS(Updatedon8/1/201502:45:41)是动态的,所以我直接打开QSettingssettings("HKEY_LOCAL_MACHINE\\SYSTEM\\Setup",QSettings::NativeFormat);并通过settings.childGroups()递归运行并以此构建我的key:QStringkey=settings.fileName()+"