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

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

1.创建桌面快捷方式

 

[cpp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. QFile::link("C:/data/KuGou.exe", QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk"));  

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

 

 

[cpp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. #include <shlobj.h>  
  2. WCHAR   startMenuPath[MAX_PATH];  
  3. bool isOK = SHGetSpecialFolderPath(NULL, startMenuPath, CSIDL_PROGRAMS, FALSE);  
  4. if(isOK)  
  5. {  
  6.   
  7.     QString myMenuDirPath=QString::fromWCharArray(startMenuPath).append("/").append(QStringLiteral("酷狗"));  
  8.     QDir dir(myMenuDirPath);  
  9.     if(!dir.exists())  
  10.     {  
  11.         dir.mkdir(myMenuDirPath);  
  12.     }  
  13.     QFile::link("C:/data/KuGou.exe", myMenuDirPath.append("/").append("KuGou.lnk"));  
  14. }  

 

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

Win7、Win8有效

 

[cpp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  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. //锁定到任务栏  
  6. int nRet = (int)::ShellExecute(NULL, QString("taskbarpin").toStdWString().c_str(), strTemp.toStdWString().c_str(), NULL, NULL, SW_SHOW);  
  7. //返回值大于32表示成功  
  8. if (nRet <= 32)  
  9. {  
  10.     qDebug() << "无法将快捷方式锁定到任务栏!";  
  11. }  
  12. //解锁  
  13. nRet = (int)::ShellExecute(NULL, QString("taskbarunpin").toStdWString().c_str(), strTemp.toStdWString().c_str(), NULL, NULL, SW_SHOW);  
  14. if (nRet <= 32)  
  15. {  
  16.      qDebug() << "解锁失败!";  
  17. }  

 

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

posted @ 2017-01-06 00:15  findumars  Views(3544)  Comments(0Edit  收藏  举报