Пример #1
0
bool CBrowserHelper::GetFirefoxPath(CString& sPath)
{
	CRegKey reg;
	if (reg.Open(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Mozilla\\Mozilla Firefox"), KEY_READ) != ERROR_SUCCESS)
	{
		return false;
	}

	TCHAR szCurrentVersion[64] = _T("");
	ULONG nCurrentVersionChars = _countof(szCurrentVersion);
	if (reg.QueryStringValue(_T("CurrentVersion"), szCurrentVersion, &nCurrentVersionChars) != ERROR_SUCCESS)
	{
		return false;
	}
	
	CString sMainKey(szCurrentVersion);
	sMainKey += _T("\\Main");

	CRegKey mainReg;
	if (mainReg.Open(reg, sMainKey, KEY_READ) != ERROR_SUCCESS)
	{
		return false;
	}

	TCHAR szPath[MAX_PATH] = _T("");
	ULONG nPathChars = _countof(szPath);
	if (mainReg.QueryStringValue(_T("PathToExe"), szPath, &nPathChars) != ERROR_SUCCESS)
	{
		return false;
	}

	sPath = szPath;

	return true;
}
Пример #2
0
bool CPPageFormats::IsAutoPlayRegistered(autoplay_t ap)
{
	ULONG len;
	TCHAR buff[_MAX_PATH];
	if(::GetModuleFileName(AfxGetInstanceHandle(), buff, MAX_PATH) == 0) return(false);
	CString exe = buff;

	int i = (int)ap;
	if(i < 0 || i >= countof(handlers)) return(false);

	CRegKey key;

	if(ERROR_SUCCESS != key.Open(HKEY_LOCAL_MACHINE,
								 CString(CStringA("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoplayHandlers\\EventHandlers\\Play") + handlers[i].verb + "OnArrival"),
								 KEY_READ)) return(false);
	len = countof(buff);
	if(ERROR_SUCCESS != key.QueryStringValue(
				CString(_T("MPCPlay")) + handlers[i].verb + _T("OnArrival"),
				buff, &len)) return(false);
	key.Close();

	if(ERROR_SUCCESS != key.Open(HKEY_CLASSES_ROOT,
								 CString(CStringA("MediaPlayerClassic.Autorun\\Shell\\Play") + handlers[i].verb + "\\Command"),
								 KEY_READ)) return(false);
	len = countof(buff);
	if(ERROR_SUCCESS != key.QueryStringValue(NULL, buff, &len))
		return(false);
	if(_tcsnicmp(_T("\"") + exe, buff, exe.GetLength() + 1))
		return(false);
	key.Close();

	return(true);
}
Пример #3
0
BOOL CMainDlg::GetRegExtInfo(CString& strInfo)
{
	CRegKey key;
	CString strKeyName;
	strKeyName = L"." + g_strExt;
	LONG lRet = key.Open(HKEY_CLASSES_ROOT, strKeyName, KEY_READ);
	if (lRet != ERROR_SUCCESS)
		return FALSE;

	wchar_t* szPathOld = new wchar_t[MAX_PATH];
	ULONG nSize = MAX_PATH;
	lRet = key.QueryStringValue(L"", szPathOld, &nSize);
	if (nSize > MAX_PATH)
	{
		if (szPathOld != NULL)
		{
			delete[] szPathOld;
			szPathOld = NULL;
		}

		szPathOld = new wchar_t[nSize + 1];
		lRet = key.QueryStringValue(L"", szPathOld, &nSize);
		if (lRet != ERROR_SUCCESS)
			return FALSE;
	}

	strInfo = szPathOld;

	if (szPathOld != NULL)
	{
		delete[] szPathOld;
		szPathOld = NULL;
	}
	return TRUE;
}
Пример #4
0
void CManualModeDlg::LoadState(void)
{
	CRegKey reg;
	if (reg.Open(HKEY_CURRENT_USER, g_szManualModeSettingsRegKey) == ERROR_SUCCESS)
	{
		TCHAR szText[MAX_PATH];

		ULONG ulNumChars = countof(szText);
		reg.QueryStringValue(g_szMapPdbFile, szText, &ulNumChars);
		m_txtMapPdbFile.SetWindowText(szText);

		ulNumChars = countof(szText);
		reg.QueryStringValue(g_szBaseAddress, szText, &ulNumChars);
		m_txtBaseAddress.GetNumEdit().SetWindowText(szText);

		ulNumChars = countof(szText);
		reg.QueryStringValue(g_szCrashAddress, szText, &ulNumChars);
		m_txtCrashAddress.GetNumEdit().SetWindowText(szText);

		ulNumChars = countof(szText);
		reg.QueryStringValue(g_szModuleSize, szText, &ulNumChars);
		m_txtModuleSize.GetNumEdit().SetWindowText(szText);

		reg.Close();
	}
}
Пример #5
0
CHostSettingDlg::CHostSettingDlg()
{
	m_szHostExe[0] = _T('\0');
	m_szHostArg[0] = _T('\0');
	CRegKey key;
	if(key.Open(HKEY_CURRENT_USER, _T("SOFTWARE\\Sailing\\LuaEdit"), KEY_READ)==ERROR_SUCCESS) {
		ULONG nChars;
		nChars = sizeof(m_szHostExe);
		key.QueryStringValue(_T("HostExe"), m_szHostExe, &nChars);
		nChars = sizeof(m_szHostArg);
		key.QueryStringValue(_T("HostArgs"), m_szHostArg, &nChars);
	}
}
Пример #6
0
bool CP2PServiceModule::RegisterApp()
{
	TCHAR szFileName[MAX_PATH];
	GetModuleFileName(_AtlBaseModule.m_hInstResource, szFileName, sizeof(szFileName));

	CRegKey reg;
	LPCTSTR lpszKey = "SOFTWARE\\P2PService_K";
	if ( reg.Create( HKEY_LOCAL_MACHINE, lpszKey ) == ERROR_SUCCESS )
	{
		reg.SetStringValue( "AppPath", szFileName );
		reg.Close();
	}

	if ( reg.Open( HKEY_LOCAL_MACHINE, lpszKey ) == ERROR_SUCCESS )
	{
		TCHAR szAppPath[MAX_PATH];
		ULONG ulLen = sizeof( szAppPath );
		if ( reg.QueryStringValue( "AppPath", szAppPath, &ulLen ) == ERROR_SUCCESS )
		{
			reg.Close();
			return true;
		}
		reg.Close();
	}

	return false;
}
CString GetPeraGlobalDataFromReg( LPCTSTR lpszFlag, LPCTSTR lpszKey )
{
	CString sRegResult;
	CString sFlag = lpszFlag == NULL ? "" : lpszFlag;
	CString sRegKey = lpszKey == NULL ? "" : lpszKey;

	HKEY hKeyParent = NULL;
	if ( sFlag.CompareNoCase("lm") == 0 ) hKeyParent = HKEY_LOCAL_MACHINE;
	else if ( sFlag.CompareNoCase("cu") == 0 ) hKeyParent = HKEY_CURRENT_USER;
	else
		return "";

	CString sRegKeyPath = "Software\\Peraglobal";

	CRegKey rk;
	DWORD pCount = 1024;
	std::string strKeyValue;
	char szValue[1024];
	memset(szValue, 0, 1024);

	if(rk.Open(hKeyParent, sRegKeyPath, KEY_READ)== ERROR_SUCCESS)
	{
		if(rk.QueryStringValue(sRegKey, szValue, &pCount)== ERROR_SUCCESS)
		{
			sRegResult = szValue;
		}
	}
	rk.Close();

	if (!sRegResult.IsEmpty())
	{
		return sRegResult;
	}
	return sRegResult;
}
Пример #8
0
bool GetAppPath(CString& strFileName)
{
	CString strKeyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\";
	strKeyPath += strFileName;
	CRegKey regkey;
	if (regkey.Open(HKEY_LOCAL_MACHINE, strKeyPath) != ERROR_SUCCESS)
		return false;

	char strValue[MAX_PATH];
	strValue[0] = '\0';
	DWORD dwLength = MAX_PATH;
	if (regkey.QueryStringValue(NULL/*Default*/, strValue, &dwLength) != ERROR_SUCCESS)
		return false;

	strFileName = strValue;
	if (strFileName.Find('%') >= 0)
	{
		char strDstPath[MAX_PATH];
		strDstPath[0] = '\0';
		if (::ExpandEnvironmentStrings(strFileName, strDstPath, MAX_PATH) > 0)
			strFileName = strDstPath;
	}
 
	return true;
}
Пример #9
0
CString GetRegForDeskClient( LPCTSTR lpszKey )
{
	CString sRegResult;

	HKEY hKeyParent = HKEY_CURRENT_USER;
	CString sRegKeyPath = "Software\\Peraglobal\\PeraDeskClient";
	CString sKey = lpszKey == NULL ? "" : lpszKey;
	if ( sKey.IsEmpty() ) return "";

	CRegKey rk;
	DWORD pCount = 1024;
	std::string strKeyValue;
	char szValue[1024] = {NULL};
	//memset(szValue, 0, 1024);

	if(rk.Open(hKeyParent, sRegKeyPath)== ERROR_SUCCESS)
	{
		if(rk.QueryStringValue(sKey, szValue, &pCount)== ERROR_SUCCESS)
		{
			sRegResult = szValue;
		}
	}
	rk.Close();

	return sRegResult;
}
Пример #10
0
BOOL CScaleOverviewDialog::OnInitDialog()
{
	__super::OnInitDialog();

	_working_folder_edit.EnableFolderBrowseButton();

	CRegKey regkey;
	if (regkey.Open(HKEY_CURRENT_USER, _T("Software\\SKMR\\PsiScale"), KEY_READ) == ERROR_SUCCESS)
	{
		static TCHAR buffer[512];
		ULONG count = 512;
		if (regkey.QueryStringValue(_T("WorkingFolder"), buffer, &count) == ERROR_SUCCESS)
		{
			if (FileSystem::FileExists(buffer))
			{
				_working_folder_edit.SetWindowText(buffer);
			}
		}
	}

	if (_is_new_user)
	{
		_answer_manager.Save(_user->GetWorkingFolder() + _T("\\") + _user->GetUid() + _T(".xml"), _user->GetUid());
	}

	_scale_list.Init();

	return TRUE;
}
Пример #11
0
CDocWindow::CDocWindow(CImageControl& ImageControl) :
	m_ImageControl(ImageControl),
	m_DocCommands(*this),
	m_Select(this)
{
	m_hKeyboardHook = NULL;
	m_pClientDC = NULL;
	m_PageViewRect.SetRectEmpty();
	m_PageRect.SetRectEmpty();
	m_bHasFocus = false;
	m_fZoomScale = -1.0;
	m_iZoom = 0; // = dtoi(m_fZoomScale - 1.0);
	m_bIgnoreSetCursor = false;
	m_bSpecialsEnabled = false;
	m_strBackgroundMessage = DEFAULT_BACKGROUND_MESSAGE;
	m_ShadowSize.SetSize(0, 0);
	m_RecolorMode = RECOLOR_OFF;
	m_PrimaryColor = 0;
	m_SecondaryColor = 0;
	m_fUsePrimaryColor = true;

	CRegKey regkey;
	if (regkey.Open(REGKEY_APPROOT, REGKEY_APP) == ERROR_SUCCESS)
	{
		DWORD dwLength = MAX_PATH;
		char strValue[MAX_PATH];
		if (regkey.QueryStringValue(REGVAL_SPECIALSENABLED, strValue, &dwLength) == ERROR_SUCCESS)
			m_bSpecialsEnabled = !!atoi(strValue);
	}
}
Пример #12
0
BOOL _CheckSogouExist()
{
	BOOL bRet = FALSE;
	HKEY hKey = NULL;
	LONG ulRet = -1;
	CRegKey reg;
	WCHAR szPath[MAX_PATH] = {0};


	ULONG ulSize = MAX_PATH;
	ulRet = reg.Open(HKEY_LOCAL_MACHINE, L"SOFTWARE\\SogouExplorer", KEY_READ);
	if (ulRet != ERROR_SUCCESS)
	{
		bRet = FALSE;
		goto clean0;
	}
	ulRet = reg.QueryStringValue(NULL, szPath, &ulSize);
	if (ulRet != ERROR_SUCCESS)
	{
		bRet = FALSE;
		goto clean0;
	}

	if (::PathIsDirectory(szPath))
	{
		bRet = TRUE;
	}

clean0:
	reg.Close();
	return bRet;
}
Пример #13
0
void CDataCeneter::GetRecordPath(BYTE bOperation, LPVOID VarData)
{
	wstring *pRecordPath = (wstring*)VarData;

	TCHAR szData[1024] = {0};
	ULONG ulChars = 1024;
	CRegKey regKey;
	if( regKey.Open(HKEY_LOCAL_MACHINE, GetRegFolder()) == ERROR_SUCCESS)
	{
		LONG nRet = regKey.QueryStringValue(_T("Recording Path"), szData,&ulChars);
		if(nRet != ERROR_SUCCESS)
		{
			vector<ec_Storage> vcStorageObj;
			ec_Storage data;
			data.storage_type = _T("RECORD");
			vcStorageObj.push_back(data);
			QueryFromDC(DATABASE,GET_STORAGE,(LPVOID)&vcStorageObj);
			if (vcStorageObj.size())
			{
				*pRecordPath = vcStorageObj[0].store_location;
			}
		}
		else
		{
			*pRecordPath = szData;
		}
	}
	regKey.Close();
}
Пример #14
0
extern "C" void __declspec(dllexport) detect_httpd(
  HWND hwndParent, 
  int string_size, 
	char *variables, 
  stack_t **stacktop)
{
	EXDLL_INIT();

	TCHAR str[1024];
	ULONG len = 1024;
	char szPath[1024]="";
	bool bDetected = false;

	CRegKey regKey;
	if(ERROR_SUCCESS==regKey.Open(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\services\\Apache2.2")))
	{
		if(ERROR_SUCCESS==regKey.QueryStringValue(_T("ImagePath"), str, &len))
		{
			bDetected = true;
		}
	}

	CStringA sPath = str;
	int nPos = sPath.Find("\\bin\\httpd.exe");
	if(nPos<0)
		bDetected = false;
	sPath = sPath.Mid(0, nPos);
	sPath.Replace("\"", "");
		
	if(bDetected)
		pushstring(sPath.GetBuffer());	
	else
		pushstring("");	
}
Пример #15
0
bool CHpAutoUpdate::IsSilentUpdateAllowed()
{
	CRegKey regkey;
	if (regkey.Open(REGKEY_APPROOT, REGKEY_HPAPP) != ERROR_SUCCESS)
		return true;
	
	DWORD dwSize = MAX_PATH;
	TCHAR szBuffer[MAX_PATH];
	if (regkey.QueryStringValue(REGVAL_AUTOUPDATE, szBuffer, &dwSize) != ERROR_SUCCESS)
		return true;

	COleDateTime Date;
	bool bOK = Date.ParseDateTime(CString(szBuffer), 0/*dwFlags*/);
	if (!bOK)
		return true;

	COleDateTime Now = COleDateTime::GetCurrentTime();
	CString strDate;
	strDate.Format("%d/%d/%d", Now.GetMonth(), Now.GetDay(), Now.GetYear());
	bOK = Now.ParseDateTime(CString(strDate), 0/*dwFlags*/);
	if (!bOK)
		return true;

	return (Date != Now);
}
Пример #16
0
bool CHpAutoUpdate::FileUpToDate(const CString& strFilePath, const CString& strManifestVersion, bool bTestRegistryVersion)
{
	CString szFilePath = m_strAppPath + m_strAppName;
	DWORD dwFileVersion = 0;

	if (!bTestRegistryVersion)
	{
		if (!FileExists(szFilePath))
			return false;

		dwFileVersion = GetFileVersion(szFilePath);
	}
	else
	{
		CRegKey regkey;
		if (regkey.Open(REGKEY_APPROOT, REGKEY_HPAPP) != ERROR_SUCCESS)
			return false;
		
		DWORD dwSize = MAX_PATH;
		TCHAR szBuffer[MAX_PATH];
		if (regkey.QueryStringValue(m_strKeyName, szBuffer, &dwSize) == ERROR_SUCCESS)
		{
			CString strFileVersion = szBuffer;
			dwFileVersion = Version(strFileVersion);
		}
	}

	return (Version(strManifestVersion) <= dwFileVersion);
}
CString GetLM_WorkspacePath()
{
	CString sRegResult;

	HKEY hKeyParent = HKEY_LOCAL_MACHINE;
	CString sRegKeyPath = "Software\\Peraglobal";
	CString sRegKey = "PeraProcessDesigner";

	CRegKey rk;
	DWORD pCount = 1024;
	std::string strKeyValue;
	char szValue[1024];
	memset(szValue, 0, 1024);

	if(rk.Open(hKeyParent, sRegKeyPath, KEY_READ)== ERROR_SUCCESS)
	{
		if(rk.QueryStringValue(sRegKey, szValue, &pCount)== ERROR_SUCCESS)
		{
			sRegResult = szValue;
		}
	}
	rk.Close();

	if (!sRegResult.IsEmpty())
	{
		return sRegResult;
	}
	return sRegResult;
}
Пример #18
0
void CDataCeneter::GetMailServer(BYTE bOperation, LPVOID VarData)
{
	struMail *pMailData = (struMail*)VarData;

	TCHAR szData[1024] = {0};
	ULONG ulChars = 1024;
	CRegKey regKey;

	if( regKey.Open(HKEY_LOCAL_MACHINE, GetRegFolder()) == ERROR_SUCCESS)
	{
		regKey.QueryStringValue(_T("SMTPSETTING"), szData,&ulChars);
	}
	regKey.Close();

	CString csSMTPSecure, csSMTPServer, csSMTPPort, csSMTPAccount, csSMTPPassword;
	AfxExtractSubString(csSMTPSecure, szData, 0, ';');
	AfxExtractSubString(csSMTPServer, szData, 1, ';');
	AfxExtractSubString(csSMTPPort, szData, 2, ';');
	AfxExtractSubString(csSMTPAccount, szData, 3, ';');
	AfxExtractSubString(csSMTPPassword, szData, 4, ';');

	pMailData->SMTPSecure = (SMTP_SECURE)_ttoi(csSMTPSecure);
	pMailData->SMTPServer = csSMTPServer;
	pMailData->SMTPPort = csSMTPPort;
	pMailData->SMTPAccount = csSMTPAccount;
	pMailData->SMTPPassword = csSMTPPassword;
}
Пример #19
0
BOOL CUtils::IsInstalled(REG_INFO & reg_info)
{
	for (size_t i = 0; i < reg_info.size(); ++i)
	{
        REG_GROUP & group = reg_info[i];

        if (group.hKey == NULL || group.szSubKey.IsEmpty()) continue;

        LPCWSTR lpcwValue = NULL;
        if (!group.szValue.IsEmpty())
        {
            lpcwValue = group.szValue;
        }

        CRegKey key;
        LONG lRes = key.Open(group.hKey, group.szSubKey, KEY_READ|(group.bIsX64?KEY_WOW64_64KEY:KEY_WOW64_32KEY));
        if (ERROR_SUCCESS != lRes)
        {
            continue;
        }

        // 如果value为空,则说明只需要验证键是否存在
        if (group.szValue.IsEmpty())
        {
            return TRUE;
        }

        WCHAR szPath[MAX_PATH] = {};
        DWORD dwLen = MAX_PATH;
        lRes = key.QueryStringValue(group.szValue, szPath, &dwLen);
        if (ERROR_SUCCESS != lRes)
        {
            continue;
        }

        CString szPathFull(szPath);
        szPathFull.TrimLeft();
        szPathFull.TrimRight();
        if (szPathFull.IsEmpty()) continue;

        if (szPathFull.Left(1) == L"\"")
        {
            szPathFull = szPathFull.Right(szPathFull.GetLength() - 1);
        }
        if (szPathFull.Right(1) == L"\"")
        {
            szPathFull = szPathFull.Left(szPathFull.GetLength() - 1);
        }

        if (!group.szExe.IsEmpty())
        {
            PathAppend(szPathFull.GetBufferSetLength(MAX_PATH), group.szExe);
            szPathFull.ReleaseBuffer();
        }

        if (PathFileExists(szPathFull)) return TRUE;
    }

    return FALSE;
}
Пример #20
0
bool CRealMediaPlayer::Init()
{
    CString prefs(_T("Software\\RealNetworks\\Preferences"));

    CRegKey key;

    if (ERROR_SUCCESS != key.Open(HKEY_CLASSES_ROOT, prefs + _T("\\DT_Common"), KEY_READ)) {
        return false;
    }

    TCHAR buff[MAX_PATH];
    ULONG len = _countof(buff);
    if (ERROR_SUCCESS != key.QueryStringValue(NULL, buff, &len)) {
        return false;
    }

    key.Close();

    m_hRealMediaCore = LoadLibrary(CString(buff) + _T("pnen3260.dll"));
    if (!m_hRealMediaCore) {
        return false;
    }

    m_fpCreateEngine = (FPRMCREATEENGINE)GetProcAddress(m_hRealMediaCore, "CreateEngine");
    m_fpCloseEngine = (FPRMCLOSEENGINE)GetProcAddress(m_hRealMediaCore, "CloseEngine");
    m_fpSetDLLAccessPath = (FPRMSETDLLACCESSPATH)GetProcAddress(m_hRealMediaCore, "SetDLLAccessPath");

    if (!m_fpCreateEngine || !m_fpCloseEngine || !m_fpSetDLLAccessPath) {
        return false;
    }

    if (ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, prefs, KEY_READ)) {
        CString dllpaths;

        len = _countof(buff);
        for (int i = 0; ERROR_SUCCESS == key.EnumKey(i, buff, &len); i++, len = _countof(buff)) {
            CRegKey key2;
            TCHAR buff2[MAX_PATH];
            ULONG len2 = _countof(buff2);
            if (ERROR_SUCCESS != key2.Open(HKEY_CLASSES_ROOT, prefs + _T("\\") + buff, KEY_READ)
                    || ERROR_SUCCESS != key2.QueryStringValue(NULL, buff2, &len2)) {
                continue;
            }

            dllpaths += CString(buff) + '=' + buff2 + '|';
        }

        key.Close();

        if (!dllpaths.IsEmpty()) {
            char* s = DEBUG_NEW char[dllpaths.GetLength() + 1];
            strcpy_s(s, dllpaths.GetLength() + 1, CStringA(dllpaths));
            for (size_t i = 0, j = strlen(s); i < j; i++) {
                if (s[i] == '|') {
                    s[i] = '\0';
                }
            }
            m_fpSetDLLAccessPath(s);
            delete [] s;
        }
BOOL CNetworkControllView::LoadTimeServerFromRegister(const CString& strKey ,CString& strVal)
{
	CRegKey reg;
	
	//CString strEntry = strTSRegRoot + _T("\\")+ strKey;
	LPTSTR  szRet = new TCHAR[128];
	ZeroMemory(szRet, sizeof(TCHAR)*128);
	DWORD dwSize = 128;

	if(reg.Open(HKEY_CURRENT_USER, strTSRegRoot) == ERROR_SUCCESS)
	{
		if(reg.QueryStringValue(strKey, szRet, &dwSize) == ERROR_SUCCESS)
		{
			strVal = CString(szRet);
		}
		else
		{
			delete []szRet;
			return FALSE;
		}	
	}	
	else // 没有这个表项
	{
		delete []szRet;
		return FALSE;
	}


	reg.Close();

	delete []szRet;
	return TRUE;
}
Пример #22
0
// Purpose: Add to the list of elements by searching the registry
void NsLibraryList::AddListRegistry()
{
    CRegKey icKey;
    if (ERROR_SUCCESS == icKey.Open(HKEY_LOCAL_MACHINE, _T(szLIBRARY_REGISTRY_BASE), KEY_READ))
    {
        const UINT BUFF_LEN = 256;
	    TCHAR szBuffer[BUFF_LEN];

	    for (DWORD dwIndex = 0; ; ++dwIndex)
	    {
	        DWORD dwSize = ARRAY_SIZE(szBuffer);
            if (icKey.EnumKey(dwIndex, szBuffer, &dwSize) == ERROR_NO_MORE_ITEMS)
                break;  // normal exit of loop

            CRegKey icNewKey;
            if (ERROR_SUCCESS == icNewKey.Open(icKey, szBuffer, KEY_READ))
            {
                TCHAR szPathBuffer[BUFF_LEN];
                ULONG nBytes = ARRAY_SIZE(szPathBuffer);

                if (ERROR_SUCCESS == icNewKey.QueryStringValue("Path", szPathBuffer, &nBytes))
                {
                    CString strDLLName(szPathBuffer);
                    AddDllToList(strDLLName);
                }
            }
	    }
    }
}
Пример #23
0
CString CFcAppSoundsRegistry::GetCurrentSoundScheme( void ) {
	CString currentSoundScheme;
	LSTATUS ls;

	CRegKey schemeskey;
	ls = schemeskey.Open( HKEY_CURRENT_USER, L"AppEvents\\Schemes", KEY_READ );

	DWORD dwType = 0;
	ULONG cbValue = 0;
	ls = schemeskey.QueryValue( nullptr, &dwType, nullptr, &cbValue );
	if ( ERROR_SUCCESS == ls || ERROR_INSUFFICIENT_BUFFER == ls ) {
		cbValue += sizeof(wchar_t);
		wchar_t* pwz = static_cast<wchar_t*>( alloca( cbValue ) );
		ls = schemeskey.QueryStringValue( nullptr, pwz, &cbValue );
		if ( ERROR_SUCCESS == ls ) {
			debug( L"CFcAppSoundsRegistry::_RegisterApp: Current sound scheme is '%s'\n", pwz );
			currentSoundScheme = pwz;
		} else {
			debug( L"CFcAppSoundsRegistry::_RegisterApp: Couldn't query value of current sound scheme: error=%lu\n", ls );
		}
	} else {
		debug( L"CFcAppSoundsRegistry::GetCurrentSoundScheme: Failed to query size of current sound scheme's name: error=%lu\n", ls );
	}

	ls = schemeskey.Close( );
	return currentSoundScheme;
}
Пример #24
0
void CInProcPlugHole::UpdateImagePathForCLSID(REFCLSID rclsid)
{
	USES_CONVERSION;
	_ASSERTE(rclsid != CLSID_NULL);

	// Find a suitable image if one has not already been specified and a CLSID is available 
	// to look up in the registry for an Image subkey.
	if (strlen(achImagePath) == 0)
	{
		// The stub is being used to load a standard Dolphin image, rather than one bound 
		// up with the stub, so we have to look up the image to load in the registry
		LPOLESTR wszCLSID;
		HRESULT hr = StringFromCLSID(rclsid, &wszCLSID);
		if (SUCCEEDED(hr))
		{

			LPCSTR szCLSID = W2A(wszCLSID);
			char szKey[5+1+38+1+5+1] = "CLSID\\";
			strcat(szKey, szCLSID);
			strcat(szKey, "\\Image");
			_ASSERTE(strlen(szKey) < sizeof(szKey));
			CRegKey rKey;
			if (ERROR_SUCCESS == rKey.Open(HKEY_CLASSES_ROOT, szKey))
			{
				DWORD dwChars = _MAX_PATH;
				rKey.QueryStringValue("", achImagePath, &dwChars);
			}
			CoTaskMemFree(wszCLSID);
		}
	}
}
CString CrBotFile()
{
	CString sRegResult;

	HKEY hKeyParent = HKEY_CLASSES_ROOT;
	CString sRegKeyPath = "BOT_FileProgID\\Shell\\Open\\Command";
	CString sRegKey = "";

	CRegKey rk;
	DWORD pCount = 1024;
	std::string strKeyValue;
	char szValue[1024];
	memset(szValue, 0, 1024);

	if(rk.Open(hKeyParent, sRegKeyPath, KEY_READ)== ERROR_SUCCESS)
	{
		if(rk.QueryStringValue(sRegKey, szValue, &pCount)== ERROR_SUCCESS)
		{
			sRegResult = szValue;
		}
	}
	rk.Close();

	if (!sRegResult.IsEmpty())
	{
		CString sBinPath = sRegResult.Left(sRegResult.ReverseFind('\\'));
		sBinPath.Trim("\"");
		return sBinPath;
	}

	return sRegResult;
}
CString OldCuFlexware()
{
	CString sRegResult;

	HKEY hKeyParent = HKEY_CURRENT_USER;
	CString sRegKeyPath = "Software\\Peraglobal\\Flexware";
	CString sRegKey = "FlexwareBinDir";

	CRegKey rk;
	DWORD pCount = 1024;
	std::string strKeyValue;
	char szValue[1024];
	memset(szValue, 0, 1024);

	if(rk.Open(hKeyParent, sRegKeyPath)== ERROR_SUCCESS)
	{
		if(rk.QueryStringValue(sRegKey, szValue, &pCount)== ERROR_SUCCESS)
		{
			sRegResult = szValue;
		}
	}
	rk.Close();

	if (!sRegResult.IsEmpty())
	{
		return sRegResult;
	}
	return sRegResult;
}
void CFilterBlacklist::LoadFromRegistry(CRegKey& regkey)
{
    Free();

    TCHAR strValName[MAX_PATH];
    TCHAR strValue[MAX_PATH];
    DWORD strValNameLength = MAX_PATH;
    int i=0;
    while (ERROR_SUCCESS == RegEnumValue(regkey, i++, strValName, &strValNameLength, NULL, NULL, NULL, NULL))
    {
        DWORD nValueLength = MAX_PATH;
        if(ERROR_SUCCESS == regkey.QueryStringValue(strValName, strValue, &nValueLength))
        {
            CString valName(strValName);
            if (valName.Find(_T("clsid")) == 0)
            {
                CLSID clsid;
                CLSIDFromString(strValue, &clsid);
                if (!IsEqualCLSID(clsid, CLSID_NULL))
                    m_aBlacklist.Add(CFilterBlacklistEntry(clsid));
            }
            else if (valName.Find(_T("wildcard")) == 0)
            {
                m_aBlacklist.Add(CFilterBlacklistEntry(strValue));
            }
        }
    }
}
Пример #28
0
ATL::CString GetStringValue(CRegKey& rk, const ATL::CString& valueName)
{
	ATL::CString result;
	DWORD dwLen = 1024;
	rk.QueryStringValue(valueName, result.GetBuffer(dwLen), &dwLen);
	result.ReleaseBuffer();
	return result;
}
Пример #29
0
void CDataCeneter::GetDDNSInfo(BYTE bOperation, LPVOID VarData)
{
	struDDNS *pDDNSData = (struDDNS*)VarData;
	
	ULONG ulChars = 1024;
	CRegKey regKey;
	if( regKey.Open(HKEY_LOCAL_MACHINE, GetRegFolder()) == ERROR_SUCCESS)
	{
		regKey.QueryDWORDValue(_T("EnableDDNS"), (DWORD&)pDDNSData->bEnableDDNS);
		regKey.QueryDWORDValue(_T("Provider"), (DWORD&)pDDNSData->Provider);
		regKey.QueryStringValue(_T("ProviderURL"), pDDNSData->szProviderURL,&ulChars);
		regKey.QueryStringValue(_T("DDNSUser"), pDDNSData->szUser,&ulChars);
		regKey.QueryStringValue(_T("DDNSPass"), pDDNSData->szPass,&ulChars);
		regKey.QueryDWORDValue(_T("IntervalTime"), (DWORD&)pDDNSData->nIntervalTime);
	}
	regKey.Close();
}
Пример #30
0
BOOL COther::GetQQInstallDir( CString& InstallDir  )
{
    BOOL bRet = FALSE;

    HKEY hKey = HKEY_LOCAL_MACHINE;
    CString SubKeyPath = L"SOFTWARE\\Tencent";

    LONG Result = ERROR_SUCCESS;
    CRegKey   QQMainKey;
    Result = QQMainKey.Open( hKey, SubKeyPath, KEY_READ );
    if ( ERROR_SUCCESS != Result )
    {
        return bRet;
    }

    DWORD Index = 0;
    DWORD BufTCharNum = 0;
    while ( true )
    {
        //得子键值名
        CString EnumSubKeyName;
        BufTCharNum = MAX_PATH+1;
        Result = QQMainKey.EnumKey( Index, EnumSubKeyName.GetBuffer(BufTCharNum), &BufTCharNum );
        EnumSubKeyName.ReleaseBuffer( (ERROR_SUCCESS!=Result)?(0):(-1) );
        if ( ERROR_SUCCESS != Result )
        {
            break;
        }
        ++Index;

        //打开子键
        CString EnumSubKeyPath;
        EnumSubKeyPath.Format( L"%s\\%s", SubKeyPath, EnumSubKeyName );

        CRegKey SubKey;
        Result = SubKey.Open( hKey, EnumSubKeyPath, KEY_READ );
        if ( ERROR_SUCCESS != Result )
        {
            continue;
        }

        //得安装路径
        CString InstallPath;
        BufTCharNum = MAX_PATH+1;
        Result = SubKey.QueryStringValue( L"install", InstallPath.GetBuffer(BufTCharNum), &BufTCharNum );
        InstallPath.ReleaseBuffer( (ERROR_SUCCESS!=Result)?(0):(-1) );
        if ( (ERROR_SUCCESS == Result)
            && (FALSE == InstallPath.IsEmpty()) )
        {
            InstallDir = InstallPath;
            bRet = TRUE;
            break;
        }
    }

    return bRet;
}