如何编程实现在快速启动栏创建快捷方式
来源:互联网 发布:lol个人数据查询 编辑:程序博客网 时间:2024/05/17 06:10
#define NO_WIN32_LEAN_AND_MEAN
#include
#include
// 以上三行放在单元文件最开始
//---------------------------------------------------------------------------
struct TShortcutCfg
{
// 构造函数
TShortcutCfg()
{
nShowCmd = SW_SHOWNORMAL;
wHotKey = 0;
nIconIndex = 0;
}
// 结构成员:
AnsiString strShortcutName; //
AnsiString strLnkDir; //
AnsiString strDestFile; //
AnsiString strArguments; //
AnsiString strIconFile; //
int nIconIndex; //
AnsiString strWorkingDir; //
AnsiString strDescription; //
WORD wHotKey; //
int nShowCmd; //
};
//---------------------------------------------------------------------------
// 在快速启动栏创建快捷方式
bool CreateQuickLaunchShortcut(TShortcutCfg *scConfig)
{
char szBuf[MAX_PATH];
bool bReturn = true;
wchar_t wszBuf[MAX_PATH];
IShellLink *pShellLink;
AnsiString strShortcutFile;
LPITEMIDLIST lpItemIdList;
SHGetSpecialFolderLocation(0, CSIDL_APPDATA, &lpItemIdList);
SHGetPathFromIDList(lpItemIdList, szBuf);
if(DirectoryExists(AnsiString(szBuf)))
{
strShortcutFile = AnsiString(szBuf) + "//Microsoft//Internet Explorer//Quick Launch//" + scConfig->strShortcutName + ".lnk";
strShortcutFile.WideChar(wszBuf, MAX_PATH);
}
else
bReturn = false;
if(bReturn)
{
bReturn = CoCreateInstance (CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (void **)&pShellLink) >= 0;
if(bReturn)
{
IPersistFile *ppf;
bReturn = pShellLink->QueryInterface(IID_IPersistFile, (void **)&ppf) >= 0;
if(bReturn)
{
// 目标文件
if(scConfig->strDestFile != EmptyStr)
bReturn = pShellLink->SetPath(scConfig->strDestFile.c_str()) >= 0;
// 参数
if(bReturn && scConfig->strArguments != EmptyStr)
bReturn = pShellLink->SetArguments(scConfig->strArguments.c_str()) >= 0;
// 显示图标
if(bReturn && scConfig->strIconFile != EmptyStr && FileExists(scConfig->strIconFile))
pShellLink->SetIconLocation(scConfig->strIconFile.c_str(),
scConfig->nIconIndex);
// 起始位置
if(bReturn && scConfig->strWorkingDir != EmptyStr)
pShellLink->SetWorkingDirectory(scConfig->strWorkingDir.c_str());
// 备注
if(bReturn && scConfig->strDescription != EmptyStr)
pShellLink->SetDescription(scConfig->strDescription.c_str());
// 快捷键
if(bReturn && scConfig->wHotKey != 0)
pShellLink->SetHotkey(scConfig->wHotKey);
// 运行方式
if(bReturn && scConfig->nShowCmd != 0)
pShellLink->SetShowCmd(scConfig->nShowCmd);
if(bReturn)
bReturn = (ppf->Save(wszBuf, TRUE) >= 0);
ppf->Release ();
}
pShellLink->Release ();
}
}
return bReturn;
}
// 调用代码举例:
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TShortcutCfg scShortcut;
scShortcut.strDestFile = "C://123//123.exe";
scShortcut.strShortcutName = "test";
if(CreateQuickLaunchShortcut(&scShortcut))
ShowMessage("在快速启动栏创建快捷方式成功!");
}
//---------------------------------------------------------------------------
- 如何编程实现在快速启动栏创建快捷方式
- 如何在快速启动栏创建快捷方式
- c#创建快捷方式到快速启动栏
- C#如何编程在桌面创建快捷方式
- 在桌面和快速启动中创建快捷方式
- 如何编程创建快捷方式?
- 在快速启动栏和桌面创建快捷方式(代码片段)
- 关于如何在启动时创建桌面快捷方式
- NSIS创建任务栏快速启动快捷方式方法
- 如何向快速启动栏里面加入快捷方式
- 编程(C#)实现创建快捷方式文件
- 编程(C#)实现创建 internet快捷方式 文件
- 如何在程序中创建快捷方式?
- 如何在程序中创建快捷方式
- 如何在ubuntu中创建快捷方式
- 如何自动在桌面创建快捷方式
- 如何在linux桌面上创建webstorm快捷方式
- 创建快捷方式 (并添加到快速启动栏 、桌面、开始菜单)
- 一款开源的PDF打印机(VB源码)!
- 深入探索MS COM开发框架 之 MFC和ATL/2
- WebService性能测试
- 由一场有关开源的争论所得到的收获
- 推销一下我自己的主页.
- 如何编程实现在快速启动栏创建快捷方式
- 关于Access数据库安全
- 舒服
- 精妙SQL语句介绍
- 一些非常有用的JAVA常用方法,可以省力很多啊!! xiaoyou [原作]
- IE功能汇总
- 验证控件和javascript冲突的解决办法
- 不设置ODBC数据源直接连Access
- Connection大全