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

时间:2024-07-17 17:07:20

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

1.创建桌面快捷方式

  1. QFile::link("C:/data/KuGou.exe", QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk"));

2.创建开始菜单快捷方式

  1. #include <shlobj.h>
  2. WCHAR   startMenuPath[MAX_PATH];
  3. bool isOK = SHGetSpecialFolderPath(NULL, startMenuPath, CSIDL_PROGRAMS, FALSE);
  4. if(isOK)
  5. {
  6. QString myMenuDirPath=QString::fromWCharArray(startMenuPath).append("/").append(QStringLiteral("酷狗"));
  7. QDir dir(myMenuDirPath);
  8. if(!dir.exists())
  9. {
  10. dir.mkdir(myMenuDirPath);
  11. }
  12. QFile::link("C:/data/KuGou.exe", myMenuDirPath.append("/").append("KuGou.lnk"));
  13. }

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

Win7、Win8有效

  1. //快捷方式必须存在,才能锁定到任务栏
  2. QFile::link("C:/data/KuGou.exe", QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk"));
  3. QString strTemp=QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk");
  4. //锁定到任务栏
  5. int nRet = (int)::ShellExecute(NULL, QString("taskbarpin").toStdWString().c_str(), strTemp.toStdWString().c_str(), NULL, NULL, SW_SHOW);
  6. //返回值大于32表示成功
  7. if (nRet <= 32)
  8. {
  9. qDebug() << "无法将快捷方式锁定到任务栏!";
  10. }
  11. //解锁
  12. nRet = (int)::ShellExecute(NULL, QString("taskbarunpin").toStdWString().c_str(), strTemp.toStdWString().c_str(), NULL, NULL, SW_SHOW);
  13. if (nRet <= 32)
  14. {
  15. qDebug() << "解锁失败!";
  16. }

http://blog.****.net/caoshangpa/article/details/53981650