QSettings修改注册表文件关联,无法新建注册表项
QSettings *Reg = new QSettings("HKEY_CLASSES_ROOT\\.mp3", QSettings::NativeFormat);
QString currentValue = Reg->value("Default").toString();
if (currentValue.isEmpty() ||
currentValue != "MyMusic.mp3")
{
QMessageBox::information(NULL,"information","Unregistered or Uncorrect");
Reg->setValue("Default", "MyMusic.mp3");
QSettings *iconReg = new QSettings("HKEY_CLASSES_ROOT\\MyMusic.mp3\\DefaultIcon", QSettings::NativeFormat);
iconReg->setValue("Default", QString(qApp->argv()[0]) + ",0"); //将当前运行的程序图标置入
delete iconReg;
QSettings *programReg = new QSettings("HKEY_CLASSES_ROOT\\MyMusic.mp3\\shell\\open\\command", QSettings::NativeFormat);
programReg->setValue("Default", QString(qApp->argv()[0]) + " %1"); //将当前运行的程序路径置入
delete programReg;
}
delete Reg;
这是代码,运行了但是没有创建新的注册表项,也就是说,置入图标和路径都失败了,现在就是让windows无法找到打开MP3文件的程序
HKEY_CLASSES_ROOT\\.mp3这一项倒是把default改成MyMusic.mp3了
这是为什么呢,文档里说若不存在就创建的啊,怎么解决呢?
...全文


