// removes all the items from the history list, and optionally deletes // the registry items. Note that if the history list is generated from // a CRecentFileList, then registry entries will not be deleted void CHistoryCombo::ClearHistory(BOOL bDeleteRegistryEntries/*=TRUE*/) { ResetContent(); if (! m_sSection.IsEmpty() && bDeleteRegistryEntries) { // get the actual reg key used CWinApp* pApp = AfxGetApp(); CRegKey rk; CString sKey = "SOFTWARE\\"; if (pApp->m_pszRegistryKey == NULL || pApp->m_pszAppName == NULL) return; sKey += pApp->m_pszRegistryKey + CString("\\"); sKey += pApp->m_pszAppName + CString("\\"); sKey += m_sSection; if (rk.Open(HKEY_CURRENT_USER, sKey) != ERROR_SUCCESS) return; // delete actual values int nMax = m_nMaxHistoryItems + 1; for (int n = 0; n < nMax; n++) { sKey.Format("%s%d", m_sKeyPrefix, n); rk.DeleteValue(sKey); } if (!m_sKeyCurItem.IsEmpty()) sKey = m_sKeyCurItem; else if (m_sKeyPrefix.IsEmpty()) sKey = "Last"; else sKey = m_sKeyPrefix; rk.DeleteValue(sKey); } }
void CFileUploaderDialog::OnButtonSignOut (void) { // Update UI ShowOfflineMessage (); ShowHelpText (); // Clean PhotoSet Details CPhotoSetInfo::PhotoSetInfoByName_map_t::iterator itePhotoSetInfo; CPhotoSetInfo::PhotoSetInfoByName_map_t::iterator iteStartPhotoSetInfo = map_PhotoSetInfoByName.begin (); CPhotoSetInfo::PhotoSetInfoByName_map_t::iterator iteEndPhotoSetInfo = map_PhotoSetInfoByName.end (); for (itePhotoSetInfo = iteStartPhotoSetInfo; itePhotoSetInfo != iteEndPhotoSetInfo; ++itePhotoSetInfo) delete itePhotoSetInfo->second; map_PhotoSetInfoByName.clear (); // Clear Selected Photo Sets of Images CImageDetails::ImageDetailsByItemIndex_map_t::iterator iteImageDetails; CImageDetails::ImageDetailsByItemIndex_map_t::iterator iteStartImageDetails = map_ImageDetailsByItemIndex.begin (); CImageDetails::ImageDetailsByItemIndex_map_t::iterator iteEndImageDetails = map_ImageDetailsByItemIndex.end (); for (iteImageDetails = iteStartImageDetails; iteImageDetails != iteEndImageDetails; ++iteImageDetails) iteImageDetails->second->set_SelectedSets.clear (); // Set Available Photo Set Status m_AvailableSetsListCtrl.SetUserSignedIn (false); // Update Selected Image Details int iItemIndex = m_ImageListCtrl.GetNextItem (-1, LVNI_SELECTED); if (iItemIndex != -1) ShowImageDetails (iItemIndex); // Clear User Profile Data CRegKey regKey; LONG lResult; lResult = regKey.Create (HKEY_CURRENT_USER, _T("Software\\WSO2\\WeSCli\\FlickrUploader")); if (ERROR_SUCCESS == lResult) { // Username regKey.DeleteValue (_T("Username")); // NSID regKey.DeleteValue (_T("NSID")); // Token regKey.DeleteValue (_T("Token")); // WSFCHome regKey.DeleteValue (_T("WSFCHome")); } b_SignedIn = false; }
void CFileAssoc::SetNoRecentDocs(bool bNoRecentDocs, bool bUpdateAssocs /*= false*/) { if (bNoRecentDocs == m_bNoRecentDocs) { bUpdateAssocs = false; } else { m_bNoRecentDocs = bNoRecentDocs; } CAtlList<CString> exts; if (bUpdateAssocs && GetAssociatedExtensionsFromRegistry(exts)) { CRegKey key; POSITION pos = exts.GetHeadPosition(); while (pos) { const CString& ext = exts.GetNext(pos); if (ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, PROGID + ext)) { if (m_bNoRecentDocs) { key.SetStringValue(_T("NoRecentDocs"), _T("")); } else { key.DeleteValue(_T("NoRecentDocs")); } } } } }
//*************************************** //* Date : 5.26.99 //* Last Modified : 5.27.99 //* Function name : DllUnregisterServer //* Description : //*************************************** // STDAPI DllUnregisterServer(void) { CRegKey key; HRESULT hr; hr = _Module.UnregisterServer(TRUE); if (SUCCEEDED(hr)) { if (key.Open(HKEY_CLASSES_ROOT, _T("*\\shellex\\ContextMenuHandlers\\")) == ERROR_SUCCESS) { hr = key.DeleteValue(NULL); if (hr != ERROR_SUCCESS && hr != ERROR_FILE_NOT_FOUND) return hr; hr = key.DeleteSubKey(_T("CopyPathExt")); if (hr != ERROR_SUCCESS && hr != ERROR_FILE_NOT_FOUND) return hr; } if (key.Open(HKEY_CLASSES_ROOT, _T("directory\\shellex\\ContextMenuHandlers\\")) == ERROR_SUCCESS) { hr = key.DeleteSubKey(_T("CopyPathExt")); if (hr != ERROR_SUCCESS && hr != ERROR_FILE_NOT_FOUND) return hr; } if (key.Open(HKEY_CLASSES_ROOT, _T("drive\\shellex\\ContextMenuHandlers\\")) == ERROR_SUCCESS) { hr = key.DeleteSubKey(_T("CopyPathExt")); if (hr != ERROR_SUCCESS && hr != ERROR_FILE_NOT_FOUND) return hr; } } return hr; }
HRESULT DllUnregisterServer(BOOL typelib = TRUE) { if (!(GetVersion() & 0x80000000UL)) { CRegKey reg; LONG lRet = reg.Open(HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), KEY_SET_VALUE); if (lRet == ERROR_SUCCESS) lRet = reg.DeleteValue(_T("{2EECB91C-3E6A-4D08-BDCA-05FB48CCE9F3}")); } { CRegKey reg; LONG ret = reg.Open(HKEY_CLASSES_ROOT, _T("*\\shellex\\ContextMenuHandlers"), KEY_SET_VALUE); if (ret == ERROR_SUCCESS) reg.DeleteSubKey(_T("CopyPathnameExt")); } { CRegKey reg; LONG ret = reg.Open(HKEY_CLASSES_ROOT, _T("Directory\\shellex\\ContextMenuHandlers"), KEY_SET_VALUE); if (ret == ERROR_SUCCESS) reg.DeleteSubKey(_T("CopyPathnameExt")); } return CAtlDllModuleT<CCopyPathnameModule>::DllUnregisterServer(typelib); }
BOOL CRegRun::AutoRun(BOOL bAutoRun, const char *procname) { CRegKey regRun; int ret; if (bAutoRun) { if (!IfAutoRun()) { ret = regRun.Create(HKEY_LOCAL_MACHINE, sKey); if (ret == ERROR_SUCCESS) { regRun.SetStringValue(m_sRegName.GetString(), procname, REG_SZ); regRun.Close(); } else { m_sErrMsg.Format("CRegKey::Create sKey(%s) error(%d)", sKey, ret); m_nErrno = ret; return FALSE; } } } else { ret = regRun.Open(HKEY_LOCAL_MACHINE, sKey, KEY_ALL_ACCESS); if (ret == ERROR_SUCCESS) { regRun.DeleteValue(m_sRegName.GetString()); regRun.Close(); } else { m_sErrMsg.Format("CRegKey::Open sKey(%s) error(%d)", sKey, ret); m_nErrno = ret; return FALSE; } } return TRUE; }
HRESULT RegisterAppID() //------------------------------------------------------------------------// // This function registers an APP-ID in the registry. If this isn't registered // it wont be possible to use CreateObject("hMailServer.Application") to get // a reference to the running application. //------------------------------------------------------------------------// { CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); CRegKey key; lRes = key.Create(keyAppID, GetAppIdT()); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); key.DeleteValue(_T("LocalService")); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); key.SetStringValue(_T("LocalService"), _T("hMailServer")); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); return S_OK; }
STDAPI DllUnregisterServer() { // If we're on NT, remove ourselves from the list of approved shell extensions. // Note that if we get an error along the way, I don't bail out since I want // to do the normal ATL unregistration stuff too. CRegKey reg; LONG lRet; if ( 0 == (GetVersion() & 0x80000000UL) ) { lRet = reg.Open ( HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), KEY_SET_VALUE ); if ( ERROR_SUCCESS == lRet ) { lRet = reg.DeleteValue ( _T("{3C16B20A-BA16-4156-916F-0A375ECFFE24}") ); } } reg.DeleteSubKey(_T("*\\shellex\\ContextMenuHandlers\\GitExtensions2")); reg.DeleteSubKey(_T("Directory\\shellex\\ContextMenuHandlers\\GitExtensions2")); reg.DeleteSubKey(_T("Directory\\Background\\shellex\\ContextMenuHandlers\\GitExtensions2")); return _Module.UnregisterServer(FALSE); }
inline HRESULT RegisterAppId(bool bService = false) throw() { if (!Uninstall()) return E_FAIL; HRESULT hr = UpdateRegistryAppId(TRUE); if (FAILED(hr)) return hr; CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); CRegKey key; lRes = key.Create(keyAppID, GetAppIdT()); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); key.DeleteValue(_T("LocalService")); if (!bService) return S_OK; key.SetStringValue(_T("LocalService"), m_szServiceName); // Create service if (!Install()) return E_FAIL; return S_OK; }
void CFilterBlacklist::SaveToRegistry(CRegKey& regkey) const { // delete old values TCHAR strValName[MAX_PATH]; DWORD strValNameLength = MAX_PATH; while(ERROR_SUCCESS == RegEnumValue(regkey, 0, strValName, &strValNameLength, NULL, NULL, NULL, NULL)) regkey.DeleteValue(strValName); // write new values CString valName; int nFilterCount = 0; SSIZE_T nCount = m_aBlacklist.GetSize(); for (SSIZE_T i = 0; i < nCount; ++i) { if (!IsEqualCLSID(m_aBlacklist[i].get_CLSID(), CLSID_NULL)) { valName.Format(_T("clsid_%d"), nFilterCount); LPOLESTR strClsid = NULL; StringFromCLSID(m_aBlacklist[i].get_CLSID(), &strClsid); CString val(strClsid); regkey.SetStringValue(valName, val); if (strClsid) CoTaskMemFree(strClsid); nFilterCount++; } else if(!m_aBlacklist[i].get_Wildcard().IsEmpty()) { valName.Format(_T("wildcard_%d"), nFilterCount); regkey.SetStringValue(valName, m_aBlacklist[i].get_Wildcard()); nFilterCount++; } } }
void CMruStorage::ResetList() // Zap the registry entry { ASSERT(!m_strSection.IsEmpty()); ASSERT(!m_strEntryFormat.IsEmpty()); LPTSTR pszEntry = new TCHAR[m_strEntryFormat.GetLength() + 5]; CString strHKeyString = k_strStoreHere; strHKeyString += "\\"; strHKeyString += m_strSection; CRegKey aKey; DWORD dwNew = 0; if (ERROR_SUCCESS == aKey.Open(HKEY_CURRENT_USER, strHKeyString)) { for (int iMRU = 0; iMRU < m_nSize; iMRU++) { wsprintf(pszEntry, m_strEntryFormat, iMRU + 1); LONG ret = aKey.DeleteValue(pszEntry); } } m_lstStrings.RemoveAll(); delete [] pszEntry; }
void CAutoConfigDlg::RemFromRecentlyUsed(const CString& strRecentlyUsed) { CRegKey keyRecentConverterIDs; CString strRegKey = GetRegKey(); if( keyRecentConverterIDs.Open(HKEY_CURRENT_USER, strRegKey) == ERROR_SUCCESS ) { keyRecentConverterIDs.DeleteValue(strRecentlyUsed); } }
void CPage1::OnBnClickedButton7() //保存设置 { // TODO: 在此添加控件通知处理程序代码 WCHAR URL[5120]; WCHAR temp[512]; m_list1.GetText(0, URL); HKEY hkey; RegOpenKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main", &hkey); RegSetValueEx(hkey, L"Start Page", 0, REG_SZ, (LPBYTE)URL, lstrlenW(URL) * sizeof(WCHAR)); RegCloseKey(hkey); if(m_list1.GetCount() > 1) { RegCreateKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main", &hkey); m_list1.GetText(1, URL); int len = lstrlen(URL) + 1; for(int i = 2; i < m_list1.GetCount(); i++) { m_list1.GetText(i, temp); lstrcpy(URL + len, temp); int tempLen = lstrlen(temp); len += tempLen + 1; } RegSetValueEx(hkey, L"Secondary Start Pages", 0, REG_MULTI_SZ, (LPBYTE)URL, len * sizeof(WCHAR)); } else { RegDeleteKeyValue(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main", L"Secondary Start Pages"); } //IE窗口标题 CString strTitle; GetDlgItem(IDC_EDIT2)->GetWindowTextW(strTitle); CRegKey mkey; if(!mkey.Open(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main")) { mkey.Create(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main"); } if(strTitle == "") { mkey.DeleteValue(L"Window Title"); } else mkey.SetStringValue(L"Window Title", strTitle); mkey.Close(); //默认下载路径 CString strPath; GetDlgItem(IDC_EDIT3)->GetWindowTextW(strPath); mkey.Open(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main"); mkey.SetStringValue(L"Default Download Directory", strPath); mkey.Close(); MessageBox(L"修改已保存", L"通知", MB_OK); }
void CPPageFormats::AddAutoPlayToRegistry(autoplay_t ap, bool fRegister) { if(!AfxGetAppSettings().fXpOrBetter) return; TCHAR buff[MAX_PATH]; if(::GetModuleFileName(AfxGetInstanceHandle(), buff, MAX_PATH) == 0) return; CString exe = buff; int i = (int)ap; if(i < 0 || i >= countof(handlers)) return; CRegKey key; if(fRegister) { if(ERROR_SUCCESS != key.Create(HKEY_CLASSES_ROOT, _T("SPlayer.Autorun"))) return;//MediaPlayerClassic key.Close(); if(ERROR_SUCCESS != key.Create(HKEY_CLASSES_ROOT, CString(CStringA("SPlayer.Autorun\\Shell\\Play") + handlers[i].verb + "\\Command"))) return; key.SetStringValue(NULL, _T("\"") + exe + _T("\"") + handlers[i].cmd); key.Close(); if(ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, CString(CStringA("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\Handlers\\Play") + handlers[i].verb + "OnArrival"))) return; key.SetStringValue(_T("Action"), ResStr(handlers[i].action)); key.SetStringValue(_T("Provider"), g_strRegisteredAppName/*_T("Media Player Classic")*/); key.SetStringValue(_T("InvokeProgID"), _T("SPlayer.Autorun")); key.SetStringValue(_T("InvokeVerb"), CString(CStringA("Play") + handlers[i].verb ));// key.SetStringValue(_T("DefaultIcon"), exe + _T(",0")); key.Close(); if(ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, CString(CStringA("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlers\\Play") + handlers[i].verb + "OnArrival"))) return; key.SetStringValue(CString(CStringA("Play") + handlers[i].verb + "OnArrival"), _T("")); key.Close(); if(ERROR_SUCCESS != key.Create(HKEY_CURRENT_USER, CString(CStringA("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlersDefaultSelection\\Play") + handlers[i].verb + "OnArrival"))) return; key.SetStringValue(NULL, CString(CStringA("Play") + handlers[i].verb + "OnArrival") ); key.Close(); /* if(ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, CString(CStringA("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlersDefaultSelection\\Play") + handlers[i].verb + "OnArrival"))) return; key.SetStringValue(NULL, CString(CStringA("Play") + handlers[i].verb + "OnArrival") ); key.Close();*/ } else { if(ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, CString(CStringA("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlers\\Play") + handlers[i].verb + "OnArrival"))) return; key.DeleteValue(CString(CStringA("Play") + handlers[i].verb + "OnArrival")); key.Close(); } }
bool ToolCollection::RemoveAutoStart(const CAtlStringW keyname) { CRegKey key; if(ERROR_SUCCESS==key.Open(HKEY_LOCAL_MACHINE,L"Software\\Microsoft\\Windows\\CurrentVersion\\Run")) { key.DeleteValue(keyname); key.Close(); return true; } return false; }
/////////////////////////////////////////////////////////////////////////// // UnregisterToolBand /////////////////////////////////////////////////////////////////////////// BOOL UnregisterToolBand(LPCTSTR szCLSID) { // Register toolband with IE CRegKey regkey; if (regkey.Open(REGKEY_APPROOT, _T("Software\\Microsoft\\Internet Explorer\\Toolbar")) != ERROR_SUCCESS) return false; if (regkey.DeleteValue(szCLSID) != ERROR_SUCCESS) return false; return true; }
bool CFileAssoc::RegisterAutoPlay(autoplay_t ap, bool bRegister) { CString exe = GetProgramPath(true); int i = (int)ap; if (i < 0 || i >= _countof(handlers)) { return false; } CRegKey key; if (bRegister) { if (ERROR_SUCCESS != key.Create(HKEY_CLASSES_ROOT, _T("MediaPlayerClassic.Autorun"))) { return false; } key.Close(); if (ERROR_SUCCESS != key.Create(HKEY_CLASSES_ROOT, _T("MediaPlayerClassic.Autorun\\Shell\\Play") + handlers[i].verb + _T("\\Command"))) { return false; } key.SetStringValue(NULL, _T("\"") + exe + _T("\"") + handlers[i].cmd); key.Close(); if (ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\Handlers\\MPCPlay") + handlers[i].verb + _T("OnArrival"))) { return false; } key.SetStringValue(_T("Action"), ResStr(handlers[i].action)); key.SetStringValue(_T("Provider"), _T("Media Player Classic")); key.SetStringValue(_T("InvokeProgID"), _T("MediaPlayerClassic.Autorun")); key.SetStringValue(_T("InvokeVerb"), _T("Play") + handlers[i].verb); key.SetStringValue(_T("DefaultIcon"), exe + _T(",0")); key.Close(); if (ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlers\\Play") + handlers[i].verb + _T("OnArrival"))) { return false; } key.SetStringValue(CString("MPCPlay") + handlers[i].verb + _T("OnArrival"), _T("")); key.Close(); } else { if (ERROR_SUCCESS != key.Create(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlers\\Play") + handlers[i].verb + _T("OnArrival"))) { return false; } key.DeleteValue(_T("MPCPlay") + handlers[i].verb + _T("OnArrival")); key.Close(); } return true; }
void UnInstallRegKey() { {// [-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags] CRegKey rk; rk.Open(HKEY_CURRENT_USER, _T("Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\Shell")); rk.RecurseDeleteKey(_T("Bags")); } { CRegKey rk; rk.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced")); rk.DeleteValue(_T("FullRowSelect")); } }
PluginMng::~PluginMng(){ for (int i=0;i<(int)plugins_.size();i++){ uuplugin* uup = plugins_.at(i); CRegKey crk; long rk=crk.Open(HKEY_LOCAL_MACHINE, _6bees_const::kplugindisabled, KEY_READ|KEY_WRITE); if (rk==ERROR_SUCCESS){ ATL::CString menuid; menuid.Format(_T("%d"),uup->menuwID_); if(uup->enabled_){ crk.DeleteValue(menuid); }else{ crk.SetDWORDValue(menuid,1); } } } }
bool CUserFile::DeleteAutoRun(CString strKey) { bool bRet = false; CRegKey regAutoRun; char szKey[50] = {0}; strcpy(szKey,strKey); if (ERROR_SUCCESS != regAutoRun.Create(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run")) { return false; } if( ERROR_SUCCESS == regAutoRun.DeleteValue(szKey)) { bRet = true; } regAutoRun.Close(); return bRet; }
STDAPI DllUnregisterServer(void) { CComPtr<IWMPMediaPluginRegistrar> spRegistrar; HRESULT hr; // Create the registration object hr = spRegistrar.CoCreateInstance(CLSID_WMPMediaPluginRegistrar, NULL, CLSCTX_INPROC_SERVER); if (FAILED( hr ) ) { return hr; } // Tell WMP to remove this plug-in hr = spRegistrar->WMPUnRegisterPlayerPlugin(WMP_PLUGINTYPE_RENDERING, CLSID_[!output Safe_root]); // Remove the preference from the registry. CRegKey key; long lResult; lResult = key.Open( HKEY_CURRENT_USER, kwszPrefsRegKey, KEY_ALL_ACCESS ); if( ERROR_SUCCESS == lResult ) { lResult = key.DeleteValue( kwszPrefsTextColor ); } if( ERROR_SUCCESS == lResult ) { lResult = key.Close(); } if( ERROR_SUCCESS == lResult ) { lResult = key.Open( HKEY_CURRENT_USER, NULL, KEY_ALL_ACCESS ); } if( ERROR_SUCCESS == lResult ) { lResult = key.DeleteSubKey( kwszPrefsRegKey ); } key.Close(); return _Module.UnregisterServer(); }
inline HRESULT RegisterAppId(bool bService = false) throw() { if (!Uninstall()) return E_FAIL; HRESULT hr = UpdateRegistryAppId(TRUE); if (FAILED(hr)) return hr; CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); CRegKey key; lRes = key.Create(keyAppID, GetAppIdT()); if (lRes != ERROR_SUCCESS) return AtlHresultFromWin32(lRes); key.DeleteValue(_T("LocalService")); if (!bService) return S_OK; key.SetStringValue(_T("LocalService"), m_szServiceName); // change LaunchACL and AccessACL,so that no "Administrator" privileges is need. //S-1-5-32-545 is USERS's SID TCHAR szUsersSID[] = _T("S-1-5-32-545"); DWORD error = ChangeAppIDLaunchACL(GetAppIdT(),szUsersSID,true,true,COM_RIGHTS_ACTIVATE_LOCAL); if(error){ DebugOutF(filelog::log_error,"ChangeAppIDLaunchACL failed with %d",error); } error = ChangeAppIDAccessACL(GetAppIdT(),szUsersSID,true,true,COM_RIGHTS_EXECUTE_LOCAL); if(error){ DebugOutF(filelog::log_error,"ChangeAppIDAccessACL failed with %d",error); } // Create service if (!Install()) return E_FAIL; return S_OK; }
void CTrafficMonitorApp::SetAutoRun(bool auto_run) { CRegKey key; wstring module_path; if (m_module_path.find(L' ') != wstring::npos) { //如果路径中有空格,则需要在程序路径前后添加双引号 module_path = L'\"'; module_path += m_module_path; module_path += L'\"'; } else { module_path = m_module_path; } //打开注册表项 if (key.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run")) != ERROR_SUCCESS) { AfxMessageBox(CCommon::LoadText(IDS_AUTORUN_FAILED_NO_KEY), MB_OK | MB_ICONWARNING); return; } if (auto_run) //写入注册表项 { if (key.SetStringValue(_T("TrafficMonitor"), module_path.c_str()) != ERROR_SUCCESS) { AfxMessageBox(CCommon::LoadText(IDS_AUTORUN_FAILED_NO_ACCESS), MB_OK | MB_ICONWARNING); return; } } else //删除注册表项 { //删除前先检查注册表项是否存在,如果不存在,则直接返回 wchar_t buff[256]; ULONG size{ 256 }; if (key.QueryStringValue(_T("TrafficMonitor"), buff, &size) != ERROR_SUCCESS) return; if (key.DeleteValue(_T("TrafficMonitor")) != ERROR_SUCCESS) { AfxMessageBox(CCommon::LoadText(IDS_AUTORUN_DELETE_FAILED), MB_OK | MB_ICONWARNING); return; } } }
void CIBALoginDlg::OnCancel() { // 2015-0828 liyajun CRegKey regKey; LONG lRet = regKey.Open(HKEY_CURRENT_USER, _T("Software\\Sunlike\\IBA")); if (ERROR_SUCCESS == lRet) { DWORD dwValue = 0; lRet = regKey.QueryDWORDValue(_T("IsFN"), *(DWORD*)&dwValue); if (ERROR_SUCCESS == lRet) { regKey.DeleteValue(_T("IsFN")); regKey.DeleteSubKey(_T("IsFN")); } regKey.Close(); } CIBADialog::OnCancel(); }
STDAPI DllUnregisterServer(void) { // On NT, remove ourself from the list of approved shell extensions. if ( 0 == (GetVersion() & 0x80000000) ) { CRegKey reg; LONG lRet; lRet = reg.Open ( HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), KEY_SET_VALUE ); if ( ERROR_SUCCESS == lRet ) { reg.DeleteValue ( _T("{3C06DFAE-062F-11D4-8D3B-919D46C1CE19}") ); reg.Close(); } } return _Module.UnregisterServer(TRUE); }
// DllUnregisterServer - Removes entries from the system registry. STDAPI DllUnregisterServer(void) { // If we're on NT, remove ourselves from the list of approved shell extensions. // Note that if we get an error along the way, I don't bail out since I want // to do the normal ATL unregistration stuff too. if ( 0 == (GetVersion() & 0x80000000UL) ) { CRegKey reg; LONG lRet; lRet = reg.Open ( HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), KEY_SET_VALUE ); if ( ERROR_SUCCESS == lRet ) lRet = reg.DeleteValue ( _T("{8AB81E72-CB2F-11D3-8D3B-AC2F34F1FA3C}") ); } HRESULT hr = _AtlModule.DllUnregisterServer(FALSE); return hr; }
STDAPI DllUnregisterServer(void) { // On NT, remove our extension from the list of approved extensions. if ( 0 == (GetVersion() & 0x80000000) ) { CRegKey reg; LONG lRet; lRet = reg.Open ( HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), KEY_SET_VALUE ); if ( ERROR_SUCCESS == lRet ) { reg.DeleteValue ( _T("{AC146E80-3679-4BCA-9BE4-E36512573E6C}") ); reg.Close(); } } return _Module.UnregisterServer(TRUE); }
inline HRESULT CServiceModule::RegisterServer(BOOL bRegTypeLib, BOOL bService) { HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) return hr; // Remove any previous service since it may point to // the incorrect file Uninstall(); // Add service entries UpdateRegistryFromResource(IDR_Senderserver, TRUE); // Adjust the AppID for Local Server or Service CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; CRegKey key; lRes = key.Open(keyAppID, _T("{87AB90ED-EFD4-4A6B-9CC7-6C87D5704FED}"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; key.DeleteValue(_T("LocalService")); if (bService) { key.SetValue(_T("senderserver"), _T("LocalService")); key.SetValue(_T("-Service"), _T("ServiceParameters")); // Create service Install(); } // Add object entries hr = CComModule::RegisterServer(bRegTypeLib); CoUninitialize(); return hr; }
bool ProfileDlg::SetAutoCheckProfile(bool autoStart) { CString str = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); CRegKey regKey; if(regKey.Open(HKEY_CURRENT_USER, str, KEY_SET_VALUE) == ERROR_SUCCESS) { if(autoStart) { //get the path of our program CString name = AfxGetApp()->m_pszExeName; name +=_T(".exe"); HMODULE hmod = GetModuleHandle(name); CString path; DWORD pathLen = ::GetModuleFileName( hmod, path.GetBufferSetLength(MAX_PATH+1), MAX_PATH); path.ReleaseBuffer( pathLen ); regKey.SetValue(path + _T(" /check"), _T("xp-AntiSpy Profile Check")); } else regKey.DeleteValue(_T("xp-AntiSpy Profile Check")); regKey.Close(); return true; } return false; }
inline HRESULT CServiceModule::RegisterServer(BOOL bRegTypeLib, BOOL bService, char * szAccount, char * szPassword) { HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) return hr; // Remove any previous service since it may point to // the incorrect file Uninstall(); // Add service entries UpdateRegistryFromResource(IDR_Lobby, TRUE); // Adjust the AppID for Local Server or Service CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; CRegKey key; lRes = key.Open(keyAppID, _T("{EFD52202-45CB-454D-B477-33BC5C29BDF1}"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; key.DeleteValue(_T("LocalService")); if (bService) { // mdvalley: SetStringValue not in my ATL key.SetValue(_T("AllLobby"), _T("LocalService")); key.SetValue(_T("-Service"), _T("ServiceParameters")); // Create service //Install(); InstallService(szAccount, szPassword); } // Add object entries hr = CComModule::RegisterServer(bRegTypeLib); CoUninitialize(); return hr; }