通过在注册表中添家内容实现
CString HelperIEE::guid()
{
CString sGuid;
GUID gguid = {0};
if (S_OK == ::CoCreateGuid(&gguid))
{
sGuid.Format("{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}",
gguid.Data1,
gguid.Data2,
gguid.Data3,
gguid.Data4[0], gguid.Data4[1],
gguid.Data4[2], gguid.Data4[3], gguid.Data4[4],
gguid.Data4[5], gguid.Data4[6], gguid.Data4[7]
);
}
return sGuid;
}
int HelperIEE::
addIEButton(
LPCSTR lpDo,
LPCSTR lpButtonText,
LPCSTR lpIcon, LPCSTR lpHotIcon,
LPCSTR lpMenuText, LPCSTR lpMenuStatusBar
)
{
int nRet = 0;
CString sKeyName;
sKeyName = "Software//Microsoft//Internet Explorer//Extensions";
sKeyName += "//";
sKeyName += guid();
CRegKey reg;
if (ERROR_SUCCESS != reg.Create(HKEY_LOCAL_MACHINE, sKeyName))
return nRet;
//固定的CLSID/不清楚到底是MS的什么东东
reg.SetValue("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}", "CLSID");
reg.SetValue("Yes", "Default Visible");
//提示
if (NULL != lpButtonText)
reg.SetValue(lpButtonText, "ButtonText");
else
reg.SetValue("addIEButton", "ButtonText");
//图标
if (NULL != lpIcon)
reg.SetValue(lpIcon, "Icon");
else
reg.SetValue(",2", "Icon");
//reg.SetValue("%SystemRoot%//system32//user32.dll,1", "Icon");
//reg.SetValue("c://test.ico", "Icon");
if (NULL != lpHotIcon)
reg.SetValue(lpHotIcon, "HotIcon");
else
reg.SetValue(path() + ",1", "HotIcon");
//reg.SetValue("%SystemRoot%//system32//user32.dll,2", "HotIcon");
//内容
CString strDo = lpDo;
if (strDo.IsEmpty()) strDo = "http://www.google.com/";
CString strDoUp = strDo;
strDoUp.MakeUpper();
if (strDoUp.Right(4) == _T(".HTM") || strDoUp.Right(5) == _T(".HTML"))
reg.SetValue(strDo, "Script");
else
reg.SetValue(strDo, "Exec");
//菜单
if (NULL != lpMenuText)
reg.SetValue(lpMenuText, "MenuText");
else
reg.SetValue("do what you do|&MenuText", "MenuText");
if (NULL != lpMenuStatusBar)
reg.SetValue(lpMenuStatusBar, "MenuStatusBar");
else
reg.SetValue("do what you do|MenuStatusBar", "MenuStatusBar");
reg.Close();
return nRet = 1;
}
源代码压缩包(收藏)
将以下内容保存为uue文件即可用winzip打开使用
_=_
_=_ Part 001 of 001 of file HelperIEE.zip
_=_
begin 666 HelperIEE.zip
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
?;'!E<DE%12YH4$L%!@`````"``(`=````'`&````````
`
end