| 
  ショートカットファイルにショートカットキーを設定する関数を作る。 //*********************************************************
// ショートカットにショートカットキーを設定する
//   LinkFile ……… ショートカットファイルの名前(*.lnk)
//         Hk ……… 特殊キーの組み合わせ(HOTKEYF_ALT | HOTKEYF_SHIFT など)
//         Vk ……… 仮想キーコード(VK_UP や VK_NUMPAD0 など)
//*********************************************************
BOOL
SetShellLinkHotkey
	(
		const char *LinkFile,
		      BYTE  Hk,
		      BYTE  Vk
	)
{
	IShellLink *psl;
	WCHAR       wcLinkFile[MAX_PATH+1];
	CoInitialize( NULL );
	if ( S_OK == CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl ) )
	{
		MultiByteToWideChar( CP_ACP, 0, LinkFile, -1, wcLinkFile, MAX_PATH ); 
		if ( LoadShellLink( psl, wcLinkFile, STGM_READ ) )  // ショートカットのロード
		{
			psl->SetHotkey( MAKEWORD( Vk, Hk ) ); // ショートカットキーの設定
			if ( SaveShellLink( psl, wcLinkFile, TRUE ) ) // ショートカットの保存
			{
				psl->Release();
				CoUninitialize();
				return TRUE; // 成功
			}
		}
		psl->Release();
	}
	CoUninitialize();
	return FALSE; // 失敗
}//SetShellLinkHotkey
関連
・ショートカットファイル(.lnk)を作成する  | |