创建快捷方式(带参数,图标)
#include "ShlObj.h" GTUSettingDialog::slotCreateLink() { QFile fileLoader; QString strParam; QDir strPath/*工作目录*/; QString strLinkName; QString strIcon; // 快捷方式图标 if(!fileLoader.exists()) { return; } HRESULT hr; hr = CoInitialize(NULL); if (FAILED(hr)) { return; } IShellLink *pLink; //IShellLink对象指针 IPersistFile *ppf; //IPersisFil对象指针 //创建IShellLink对象 hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pLink); if (FAILED(hr)) { CoUninitialize(); return; } //从IShellLink对象中获取IPersistFile接口 hr = pLink->QueryInterface(IID_IPersistFile, (void**)&ppf); if (FAILED(hr)) { pLink->Release(); CoUninitialize(); return; } //目标 pLink->SetPath(strGWSAppLoader.toStdWString().c_str()); //参数 pLink->SetArguments(strParam.toStdWString().c_str()); //设置起始位置 pLink->SetWorkingDirectory(strPath.toStdWString().c_str()); //显示方式 pLink->SetShowCmd(SW_SHOWNORMAL); //设置图标 pLink->SetIconLocation(strIcon.toStdWString().c_str(), 0); hr = ppf->Save(strLinkName.toStdWString().c_str(), STGM_READWRITE); ppf->Release(); pLink->Release(); CoUninitialize(); }
- 设置开机启动
const QString strRegAutoRunPath = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\";
const QString strAutoRunKey = "DailyNews";
setAutoRun(bool autoStart)
{
QSettings reg(strRegAutoRunPath, QSettings::NativeFormat);
if(autoStart)
{
reg.setValue(strAutoRunKey, " \"***.exe\" -param");
}else{
reg.remove(strAutoRunKey);
}
}