Qt之创建桌面和开始菜单快捷方式

将安装好的酷狗拷贝到C:\data目录中

1.创建桌面快捷方式

QFile::link("C:/data/KuGou.exe", QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk"));
2.创建开始菜单快捷方式
QString startMenuPath=QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation).append("/").append(QStringLiteral("酷狗"));
QDir dir(startMenuPath);
if(!dir.exists())
{
     dir.mkdir(startMenuPath);
}
if(dir.exists())
{
     QFile::link("C:/data/KuGou.exe", startMenuPath.append("/").append("KuGou.lnk"));
}

3.将快捷方式锁定到任务栏

Win7、Win8有效

   //快捷方式必须存在,才能锁定到任务栏
   QFile::link("C:/data/KuGou.exe", QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk"));
   QString strTemp=QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk");

   //锁定到任务栏
   int nRet = (int)::ShellExecute(NULL, QString("taskbarpin").toStdWString().c_str(), strTemp.toStdWString().c_str(), NULL, NULL, SW_SHOW);
   //返回值大于32表示成功
   if (nRet <= 32)
   {
       qDebug() << "无法将快捷方式锁定到任务栏!";
   }
   //解锁
   nRet = (int)::ShellExecute(NULL, QString("taskbarunpin").toStdWString().c_str(), strTemp.toStdWString().c_str(), NULL, NULL, SW_SHOW);
   if (nRet <= 32)
   {
        qDebug() << "解锁失败!";
   }



你可能感兴趣的:(Qt)