前言
在window下(本篇为window10),调用第三方应用,可以调用后台CMD执行的命令行。如果是浏览器调用第三方应用,可以通过自定义域名调用指定的处理脚本,处理脚本再调用第三方软件。本篇只讲解QT程序调用后台CMD执行的命令行的方式,浏览器的方式在其他文章中。
功能讲解
执行应用程序
一般情况下QT程序是可以直接通过打开新进程来调用第三方程序的,但如果注册成服务时,需要调用CMD窗口方式来打开,只需在应用前面加上"/c"即可,比如打开记事本"/c c:\\windows\\notepad.exe"。
有些第三方应用,必须进入到应用所在目录运行才行(我就遇到某个第三方应用进入到目录下运行才能读取配置文件,这是无法规避的)时,可以用把应用路径作为参数传入以下的批处理文件中执行:
@echo off
REM 检查是否传入了参数
if "%~1"=="" (
echo 请提供应用程序的绝对路径.
exit /b 1
)
REM 获取应用程序的路径
set "appPath=%~1"
REM 获取应用程序所在目录和文件名部分
set "appDir=%~dp1"
set "execfileName=%~nx1"
REM 切换到应用程序目录
cd /d "%appDir%"
echo "dir:" "%appDir%"
REM 启动应用程序
start "" "%execfileName%"
echo "exe:" "%execfileName%"
执行注册表文件
在window10系统中,.reg文件点击是可以运行的,cmd窗口是通过import命令导入,为了让系统知道是64位的,需要指定/reg:64,原因是win10系统的注册表兼容了32位和64位,执行命令如下:
/c c:\\windows\\system32\\reg.exe import d:\\hyy\\notepad.reg /reg:64