⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cedtappregistry.cpp

📁 Crimson编辑器的英文版,完成从韩文版变成英文版的移植,并且附带可执行文件和注册表文件,无需原先的安装包,是改写编辑器的最理想选择.
💻 CPP
字号:
#include "stdafx.h"
#include "cedtHeader.h"
#include "registry.h"


BOOL CCedtApp::SaveMultiInstancesFlag(LPCTSTR lpszProfileName)
{
	CString szAllowMultiReg = GetProfileString(lpszProfileName, "", NULL);
	CString szAllowMultiNow = ( m_bAllowMultiInstances ) ? "yes" : "no";

	if( ! szAllowMultiReg.CompareNoCase(szAllowMultiNow) ) return TRUE; // no need to save
	if( ! WriteProfileString(lpszProfileName, "", szAllowMultiNow) ) return FALSE;

	return TRUE;
}

BOOL CCedtApp::LoadMultiInstancesFlag(LPCTSTR lpszProfileName)
{
	CString szAllowMulti;
	m_bAllowMultiInstances = FALSE;

	szAllowMulti = GetProfileString(lpszProfileName, "", NULL);
	if( ! szAllowMulti.CompareNoCase("yes") ) m_bAllowMultiInstances = TRUE;

	return TRUE;
}

BOOL CCedtApp::SaveBrowsingDirectory(LPCTSTR lpszProfileName)
{
	CMainFrame * pMainFrame = (CMainFrame *)AfxGetMainWnd();
	CFileWindow * pFileWindow = (CFileWindow *)pMainFrame->GetFileWindow();
	CString szDirectory; pFileWindow->GetBrowsingDirectory( szDirectory );
	WriteProfileString(lpszProfileName, "", szDirectory);

	return TRUE;
}

BOOL CCedtApp::LoadBrowsingDirectory(LPCTSTR lpszProfileName)
{
	TCHAR szCurrentDirectory[MAX_PATH]; GetCurrentDirectory(MAX_PATH, szCurrentDirectory);
	CString szDirectory = GetProfileString(lpszProfileName, "", NULL);

	CMainFrame * pMainFrame = (CMainFrame *)AfxGetMainWnd();
	CFileWindow * pFileWindow = (CFileWindow *)pMainFrame->GetFileWindow();
	if( szDirectory.GetLength() ) pFileWindow->SetBrowsingDirectory( szDirectory );
	else pFileWindow->SetBrowsingDirectory( szCurrentDirectory );

	return TRUE;
}

BOOL CCedtApp::SaveWorkingDirectory(LPCTSTR lpszProfileName)
{
	TCHAR szDirectory[MAX_PATH]; GetCurrentDirectory(MAX_PATH, szDirectory);
	WriteProfileString(lpszProfileName, "", szDirectory);
	return TRUE;
}

BOOL CCedtApp::LoadWorkingDirectory(LPCTSTR lpszProfileName)
{
	CString szDirectory = GetProfileString(lpszProfileName, "", NULL);
	if( szDirectory.GetLength() ) SetCurrentDirectory(szDirectory);
	return TRUE;
}

BOOL CCedtApp::SaveWorkspaceFilePath(LPCTSTR lpszProfileName)
{
	CString szPathName = m_szInstallDirectory + "\\cedt.wks";
	if( m_bProjectLoaded ) szPathName = m_szProjectPathName;
	WriteProfileString(lpszProfileName, "", szPathName);

	return TRUE;
}

BOOL CCedtApp::LoadWorkspaceFilePath(LPCTSTR lpszProfileName)
{
	CString szPathName = GetProfileString(lpszProfileName, "", NULL);
	if( szPathName.GetLength() ) m_szPrevWorkspacePathName = szPathName;
	else m_szPrevWorkspacePathName = "";

	return TRUE;
}

BOOL CCedtApp::IsUsedInInternetExplorer()
{
	CString szRegValue;
	if( ! GetRegKeyValue(HKEY_LOCAL_MACHINE, REGPATH_USEININTERNETEXPLORER, "", szRegValue) ) return FALSE;
	return ! szRegValue.CompareNoCase(m_szInstallDirectory + "\\notepad.exe");
}

BOOL CCedtApp::UseInInternetExplorer(BOOL bUse)
{
	BOOL bReg = IsUsedInInternetExplorer();
	if( (bUse && bReg) || (! bUse && ! bReg) ) return TRUE;

	if( bUse ) {
		CString szRegValue = m_szInstallDirectory + "\\notepad.exe";
		if( ! SetRegKeyValue(HKEY_LOCAL_MACHINE, REGPATH_USEININTERNETEXPLORER, "", szRegValue) ) return FALSE;
	} else {
		if( ! DeleteRegKey(HKEY_LOCAL_MACHINE, REGPATH_USEININTERNETEXPLORER) ) return FALSE;
	}

	return TRUE;
}

BOOL CCedtApp::IsAddedToRightMouseButton()
{
	CString szRegValue;
	if( ! GetRegKeyValue(HKEY_CLASSES_ROOT, REGPATH_ADDTORIGHTMOUSEBUTTON, "", szRegValue) ) return FALSE;
	return ! szRegValue.CompareNoCase(CLSID_SHELLEXT_CRIMSONEDITOR);
}

BOOL CCedtApp::AddToRightMouseButton(BOOL bAdd)
{
	BOOL bReg = IsAddedToRightMouseButton();
	if( (bAdd && bReg) || (! bAdd && ! bReg) ) return TRUE;

	if( bAdd ) {
		CString szRegValue = m_szInstallDirectory + "\\ShellExt.dll";
		if( ! RegisterInProcServer(CLSID_SHELLEXT_CRIMSONEDITOR, PROGID_SHELLEXT_CRIMSONEDITOR, szRegValue) ) return FALSE;
		if( ! SetRegKeyValue(HKEY_LOCAL_MACHINE, REGPATH_SHELLEXTENSIONAPPROVED, CLSID_SHELLEXT_CRIMSONEDITOR, PROGID_SHELLEXT_CRIMSONEDITOR) ) return FALSE;
		if( ! SetRegKeyValue(HKEY_CLASSES_ROOT, REGPATH_ADDTORIGHTMOUSEBUTTON, "", CLSID_SHELLEXT_CRIMSONEDITOR) ) return FALSE;
	} else {
		if( ! UnregisterInProcServer(CLSID_SHELLEXT_CRIMSONEDITOR, PROGID_SHELLEXT_CRIMSONEDITOR) ) return FALSE;
		if( ! DeleteRegValue(HKEY_LOCAL_MACHINE, REGPATH_SHELLEXTENSIONAPPROVED, CLSID_SHELLEXT_CRIMSONEDITOR) ) return FALSE;
		if( ! DeleteRegKey(HKEY_CLASSES_ROOT, REGPATH_ADDTORIGHTMOUSEBUTTON) ) return FALSE;
	}

	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -