在实际应用中需要在一个进程启动另外一个进程,可以将子进程的路径写入注册表中,然后主进程读取注册表中子进程路径,启动子进程,并以命令行参数的形式传入参数,启动子进程。具体实现方式如下

(1)      子进程通过bat文件将路径写入注册表

reg add "HKEY_CLASSES_ROOT\btoolpplayerprotocol\shell\open\command" /t REG_SZ /d "\"%~dp0btoolpplayer.exe\" \"%%1\"" /f

/v表示名称,这里没有说明是默认值

/t表示类型

/d表示值

%cd%代表的是当前工作目录(current working directory,variable);

%~dp0代表的是当前批处理文件所在完整目录(the batch file's directory,fixed)。

(2)       主进程访问注册表读取路径信息

这里可以直接加入键名称,然后直接根据键名称访问键值,下面是遍历获取exe,不太合适。

QSettings reg("HKEY_CLASSES_ROOT\\btoolpplayerprotocol\\shell\\open\\command", QSettings::NativeFormat);

QStringList keyList = reg.childKeys();

QString location = "";

foreach(QString key, keyList)

{

QString slocation = reg.value(key).toString();

if (slocation!="" || slocation.contains("exe", Qt::CaseSensitive))

{

location = slocation;

break;

}

}

(3)      采用process访问进程

int index = location.indexOf("exe", 0);

index += 3;

location = location.mid(1, index-1);

QStringList Qstringlist;

Qstringlist << csCmd;

QProcess process;

LOGIC_TRACE("start paltplayer begin! ");

process.startDetached(location, Qstringlist);//分离

       LOGIC_TRACE("start paltplayer end! ");

(4)       bat从注册表中将键值删除

reg delete "HKEY_CLASSES_ROOT\btoolpplayerprotocol" /f

最新文章

  1. 怎样两个月完成Udacity Data Analyst Nanodegree
  2. JMeter中BeanShell实现写入文件
  3. 预定义接口-迭代器Iterator
  4. 自定义控件开发的调试及DesignMode的状态处理
  5. c++ 爬虫
  6. easyui中Tab的tools按钮刷新当前tab
  7. poj 3620 Avoid The Lakes【简单dfs】
  8. LXPanel自定义添加应用程序到快速启动栏
  9. 后台写js 并跳转
  10. 孙鑫HTML视频学习总结
  11. jQuery选择表格中的列
  12. 内核对象kobject和sysfs(2)——kref分析
  13. Sql的基础知识提升(二)
  14. Socket编程实践(7) --Socket-Class封装(改进版v2)
  15. ES搜索引擎基本操作
  16. 面试遇到两个稍显变态的题目,mark一下
  17. 嵌入式常用技术概览之IIC(I2C)
  18. java变量的作用域和基本数据类型转换
  19. PHP 日期时间类 Carbon 的常见用法
  20. [osg][opengl]透视投影的参数Perspective

热门文章

  1. ELK学习笔记之F5利用EELK进行应用数据挖掘系列(2)-DNS
  2. win7改装 CentOS7,装完后开机,没有引导
  3. Android之RadioButton多行
  4. 关于sql中in 和 exists 的效率问题
  5. 1.多表查询 =&gt; 转化为一张联合大表 2.可视化工具 3.pymysql模块
  6. CEF 添加F5刷新快捷键
  7. 使用vs code搭建C开发环境
  8. IDEA查看一个类的所有继承关系
  9. Asp.net 之 window 操作命令
  10. Python打印矩形、直角三角形、等腰三角形、菱形