您的位置:首页 > 其它

VC获取快捷方式的目标和参数

2012-12-13 06:57 302 查看
一般情况操作如下:
一、初始化COM接口

二、创建IShellLink对象

三、从IShellLink对象中获取IPersistFile对象接口

四、操作IShellLink对象

五、释放IPersistFile对象接口

六、释放IShellLink对象

七、释放COM接口
示例代码:

/*

注:在桌面上创建快捷方式,快捷方式的名称为"VC创建的快捷方式",快捷方式指向应用程序"c:\aa.exe"

快捷方式的快捷键:无

快捷方式的工作目录:c:\

快捷方式的备注:VC写写捷方式

快捷方式的运行方式:常规窗口

*/
HRESULT hRet;

IShellLink *pLink; //IShellLink对象指针

IPersistFile * ppf; //IPersisFil对象指针

WCHAR wsz[MAX_PATH]; //定义Unicode字符串
//初始化COM库

hRet = ::CoInitialize(NULL);

if ( hRet != S_OK) //初始化COM库失败,直接返回

{

AfxMessageBox("初始化COM库失败");

return;

}

//创建IShellLink实例

hRet = ::CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_IShellLink,(void**)&pLink);

if ( hRet != S_ok)

{

AfxMessageBox("创建IShellLink实例失败");

}

else

{

//创建IShellLink实例成功,继续操作

//从IShellLink对象中获取IPersistFile接口

hRet = pLink->QueryInterface(IID_IpersistFile,(void**)&ppf);

if ( hRet != S_OK)

{

AfxMessageBox("获取IPersistFile接口失败");

}

else

{

//获取接口成功,继续操作

//设置快捷方式中的程序路径

pLink->SetPath("c:\\aa.exe");

//设置快捷方式的工作目录

pLink->SetWorkingDirectory("c:\\");

//确保快捷方式路径由ANSI字符串组成

MultiByteToWideChar(

CP_ACP,

0,

"C:\\Documents and Settings\\hjs\\桌面\\vc创建的快捷方式.lnk",

-1,

wsz,

MAX_PATH

);

//保存快捷方式

ppf->Save(wsz,TRUE);

}

}
//释放IPersistFile接口

ppf->Release();

//释放IShellLink对象

pLink->Release();

//释放COM接口

::CoUninitialize();
//注:网上找到其他资料见楼下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: