本文整理汇总了C++中IShellLink::SetHotkey方法的典型用法代码示例。如果您正苦于以下问题:C++ IShellLink::SetHotkey方法的具体用法?C++ IShellLink::SetHotkey怎么用?C++ IShellLink::SetHotkey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IShellLink
的用法示例。
在下文中一共展示了IShellLink::SetHotkey方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateFileShortcut
BOOL CreateFileShortcut(LPCWSTR lpszFileName, LPCWSTR lpszLnkFileDir, LPCWSTR lpszLnkFileName, LPCWSTR lpszWorkDir, WORD wHotkey, LPCTSTR lpszDescription, int iShowCmd)
{
if (lpszLnkFileDir == NULL)
return FALSE;
HRESULT hr;
IShellLink *pLink; //IShellLink对象指针
IPersistFile *ppf; //IPersisFil对象指针
//创建IShellLink对象
hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pLink);
if (FAILED(hr))
return FALSE;
//从IShellLink对象中获取IPersistFile接口
hr = pLink->QueryInterface(IID_IPersistFile, (void**)&ppf);
if (FAILED(hr))
{
pLink->Release();
return FALSE;
}
//目标
if (lpszFileName == NULL)
pLink->SetPath(_wpgmptr);
else
pLink->SetPath(lpszFileName);
//工作目录
if (lpszWorkDir != NULL)
pLink->SetWorkingDirectory(lpszWorkDir);
//快捷键
if (wHotkey != 0)
pLink->SetHotkey(wHotkey);
//备注
if (lpszDescription != NULL)
pLink->SetDescription(lpszDescription);
//显示方式
pLink->SetShowCmd(iShowCmd);
//快捷方式的路径 + 名称
wchar_t szBuffer[MAX_PATH];
if (lpszLnkFileName != NULL) //指定了快捷方式的名称
wsprintf(szBuffer, L"%s\\%s", lpszLnkFileDir, lpszLnkFileName);
//保存快捷方式到指定目录下
hr = ppf->Save(szBuffer, TRUE);
ppf->Release();
pLink->Release();
return SUCCEEDED(hr);
}
示例2: WNInstall_CreateShortCut
int WNInstall_CreateShortCut(
LPCSTR pszShortcutFile,
LPCSTR pszIconFile,
int iconindex,
LPCSTR pszExe,
LPCSTR pszArg,
LPCSTR workingdir,
int showmode,
int hotkey
)
{
HRESULT hres;
int rv=1;
IShellLink *psl;
hres=OleInitialize(NULL);
if (hres != S_FALSE && hres != S_OK) return rv;
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (void **) &psl);
if (SUCCEEDED(hres))
{
IPersistFile *ppf;
hres = psl->QueryInterface(IID_IPersistFile, (void **) &ppf);
if (SUCCEEDED(hres))
{
WCHAR wsz[1024];
MultiByteToWideChar(CP_ACP, 0, pszShortcutFile, -1, wsz, 1024);
hres = psl->SetPath(pszExe);
psl->SetWorkingDirectory(workingdir);
if (showmode) psl->SetShowCmd(showmode);
if (hotkey) psl->SetHotkey((unsigned short)hotkey);
if (pszIconFile) psl->SetIconLocation(pszIconFile,iconindex);
if (pszArg)
{
psl->SetArguments(pszArg);
}
if (SUCCEEDED(hres))
{
hres=ppf->Save((const WCHAR*)wsz,TRUE);
if (SUCCEEDED(hres)) rv=0;
}
ppf->Release();
}
psl->Release();
}
OleUninitialize();
if( rv!=0 )
{
MessageBox( 0, pszShortcutFile, "Error creating shortcut", MB_OK );
}
return rv;
}
示例3: OleSetOleError
// @pymethod |PyIShellLink|SetHotkey|Sets the hot key for a shell link object.
PyObject *PyIShellLink::SetHotkey(PyObject *self, PyObject *args)
{
IShellLink *pISL = GetI(self);
if ( pISL == NULL )
return NULL;
// @pyparm int|wHotkey||The virtual key code is in the low-order byte, and the modifier
// flags are in the high-order byte. The modifier flags can be a combination of the
// values specified in the description of the <om PyIShellLink::GetHotkey> method.
WORD wHotkey;
if ( !PyArg_ParseTuple(args, "i:SetHotkey", &wHotkey) )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pISL->SetHotkey( wHotkey );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return OleSetOleError(hr);
Py_INCREF(Py_None);
return Py_None;
}
示例4: SetStartupOptions
// Creates a shortcut in the startup folder.
void SetStartupOptions() {
// Required for Win95
CoInitialize(NULL);
// Create the COM server
IShellLink *pShellLink = NULL;
HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER, IID_IShellLink,
reinterpret_cast<LPVOID*>(&pShellLink));
if (FAILED(hr))
return;
TCHAR szPath[MAX_PATH] = {0};
GetModuleFileName(NULL, szPath, sizeof(szPath));
GetShortPathName(szPath, szPath, sizeof(szPath));
// Set attributes
pShellLink->SetPath(szPath);
pShellLink->SetDescription(SZ_APPNAME);
pShellLink->SetHotkey(0);
pShellLink->SetIconLocation(szPath, 0);
// Get the IPersistFile interface to save
IPersistFile *pPF = NULL;
hr = pShellLink->QueryInterface(IID_IPersistFile, reinterpret_cast<LPVOID*>(&pPF));
if (FAILED(hr)) {
pShellLink->Release();
return;
}
LPMALLOC pMalloc;
if (SUCCEEDED(SHGetMalloc(&pMalloc))) {
LPITEMIDLIST pidl;
SHGetSpecialFolderLocation(NULL, CSIDL_STARTUP, &pidl);
SHGetPathFromIDList(pidl, szPath);
pMalloc->Free(pidl);
pMalloc->Release();
}
// Create a .lnk file
TCHAR szLinkFile[MAX_PATH] = {0};
wsprintf(szLinkFile, "%s.lnk", SZ_APPNAME);
if (szPath[lstrlen(szPath) - 1] != '\\')
lstrcat(szPath, "\\");
lstrcat(szPath, szLinkFile);
if (g_bStartWithWindows) {
// Save Unicode LNK file
WCHAR wszLinkFile[MAX_PATH] = {0};
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1, wszLinkFile, MAX_PATH);
hr = pPF->Save(wszLinkFile, TRUE);
if (FAILED(hr))
ShowError(IDS_STARTUP_ERR, MB_ICONHAND);
} else {
DeleteFile(szPath);
}
// Clean up
pPF->Release();
pShellLink->Release();
CoUninitialize();
}