[eMule] ed2k 协议跟电骡程序的绑定
时间:2011-01-07 来源:宇智波Q
因为emule程序在注册表里进行了设置:
[HKEY_CURRENT_USER\Software\Classes\ed2k]
@="URL: ed2k Protocol"
"URL Protocol"=""
// 图标设置
[HKEY_CURRENT_USER\Software\Classes\ed2k\DefaultIcon]
@="d:\\code\\CodeSvr\\eMule\\srchybrid\\Debug_vc9\\emule.exe"
[HKEY_CURRENT_USER\Software\Classes\ed2k\shell]
[HKEY_CURRENT_USER\Software\Classes\ed2k\shell\open]
// 调用命令行
[HKEY_CURRENT_USER\Software\Classes\ed2k\shell\open\command]
@="\"d:\\code\\CodeSvr\\eMule\\srchybrid\\Debug_vc9\\emule.exe\" \"%1\""
// 实现代码
CRegKey regkey;
if (regkey.Create(hkeyCR, _T("Software\\Classes\\ed2k\\shell\\open\\command")) == ERROR_SUCCESS)
{
if (dontAsk || (AfxMessageBox(GetResString(IDS_ASSIGNED2K), MB_ICONQUESTION|MB_YESNO) == IDYES))
{
VERIFY( regkey.SetStringValue(NULL, regbuffer) == ERROR_SUCCESS );
VERIFY( regkey.Create(hkeyCR, _T("Software\\Classes\\ed2k\\DefaultIcon")) == ERROR_SUCCESS );
VERIFY( regkey.SetStringValue(NULL, modbuffer) == ERROR_SUCCESS );
VERIFY( regkey.Create(hkeyCR, _T("Software\\Classes\\ed2k")) == ERROR_SUCCESS );
VERIFY( regkey.SetStringValue(NULL, _T("URL: ed2k Protocol")) == ERROR_SUCCESS );
VERIFY( regkey.SetStringValue(_T("URL Protocol"), _T("")) == ERROR_SUCCESS );
VERIFY( regkey.Open(hkeyCR, _T("Software\\Classes\\ed2k\\shell\\open")) == ERROR_SUCCESS );
regkey.RecurseDeleteKey(_T("ddexec"));
regkey.RecurseDeleteKey(_T("ddeexec"));
}
regkey.Close();
}