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

📄 pwsafedlg.cpp

📁 一款密码保险箱源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	ON_BN_CLICKED(IDC_TB_SAVE, OnTbSave)
	ON_BN_CLICKED(IDC_TB_NEW, OnTbNew)
	ON_BN_CLICKED(IDC_TB_COPYUSER, OnTbCopyUser)
	ON_BN_CLICKED(IDC_TB_COPYPW, OnTbCopyPw)
	ON_BN_CLICKED(IDC_TB_ADDENTRY, OnTbAddEntry)
	ON_BN_CLICKED(IDC_TB_EDITENTRY, OnTbEditEntry)
	ON_BN_CLICKED(IDC_TB_DELETEENTRY, OnTbDeleteEntry)
	ON_BN_CLICKED(IDC_TB_FIND, OnTbFind)
	ON_BN_CLICKED(IDC_TB_LOCK, OnTbLock)
	ON_BN_CLICKED(IDC_TB_ABOUT, OnTbAbout)
	ON_COMMAND(ID_VIEW_SHOWTOOLBAR, OnViewShowToolBar)
	ON_COMMAND(ID_PWLIST_MASSMODIFY, OnPwlistMassModify)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_MASSMODIFY, OnUpdatePwlistMassModify)
	ON_NOTIFY(LVN_KEYDOWN, IDC_PWLIST, OnKeyDownPwlist)
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_COMMAND(ID_VIEW_ENTRYVIEW, OnViewEntryView)
	ON_COMMAND(ID_RE_COPYSEL, OnReCopySel)
	ON_COMMAND(ID_RE_COPYALL, OnReCopyAll)
	ON_COMMAND(ID_RE_SELECTALL, OnReSelectAll)
	ON_COMMAND(ID_EXTRAS_TANWIZARD, OnExtrasTanWizard)
	ON_UPDATE_COMMAND_UI(ID_EXTRAS_TANWIZARD, OnUpdateExtrasTanWizard)
	ON_COMMAND(ID_FILE_PRINTPREVIEW, OnFilePrintPreview)
	ON_UPDATE_COMMAND_UI(ID_FILE_PRINTPREVIEW, OnUpdateFilePrintPreview)
	ON_COMMAND(ID_INFO_TRANSLATION, OnInfoTranslation)
	ON_COMMAND(ID_SAFE_ADDSUBGROUP, OnSafeAddSubgroup)
	ON_UPDATE_COMMAND_UI(ID_SAFE_ADDSUBGROUP, OnUpdateSafeAddSubgroup)
	ON_NOTIFY(TVN_BEGINDRAG, IDC_GROUPLIST, OnBeginDragGrouplist)
	ON_WM_CANCELMODE()
	ON_COMMAND(ID_GROUP_SORT, OnGroupSort)
	ON_UPDATE_COMMAND_UI(ID_GROUP_SORT, OnUpdateGroupSort)
	ON_COMMAND(ID_PWLIST_SORT_TITLE, OnPwlistSortTitle)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_TITLE, OnUpdatePwlistSortTitle)
	ON_COMMAND(ID_PWLIST_SORT_USER, OnPwlistSortUser)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_USER, OnUpdatePwlistSortUser)
	ON_COMMAND(ID_PWLIST_SORT_URL, OnPwlistSortUrl)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_URL, OnUpdatePwlistSortUrl)
	ON_COMMAND(ID_PWLIST_SORT_PASSWORD, OnPwlistSortPassword)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_PASSWORD, OnUpdatePwlistSortPassword)
	ON_COMMAND(ID_PWLIST_SORT_NOTES, OnPwlistSortNotes)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_NOTES, OnUpdatePwlistSortNotes)
	ON_COMMAND(ID_PWLIST_SORT_CREATION, OnPwlistSortCreation)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_CREATION, OnUpdatePwlistSortCreation)
	ON_COMMAND(ID_PWLIST_SORT_LASTMODIFY, OnPwlistSortLastmodify)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_LASTMODIFY, OnUpdatePwlistSortLastmodify)
	ON_COMMAND(ID_PWLIST_SORT_LASTACCESS, OnPwlistSortLastaccess)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_LASTACCESS, OnUpdatePwlistSortLastaccess)
	ON_COMMAND(ID_PWLIST_SORT_EXPIRE, OnPwlistSortExpire)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SORT_EXPIRE, OnUpdatePwlistSortExpire)
	ON_COMMAND(ID_GROUP_MOVELEFT, OnGroupMoveLeft)
	ON_UPDATE_COMMAND_UI(ID_GROUP_MOVELEFT, OnUpdateGroupMoveLeft)
	ON_COMMAND(ID_GROUP_MOVERIGHT, OnGroupMoveRight)
	ON_UPDATE_COMMAND_UI(ID_GROUP_MOVERIGHT, OnUpdateGroupMoveRight)
	ON_COMMAND(ID_VIEW_HIDEUSERS, OnViewHideUsers)
	ON_COMMAND(ID_VIEW_ATTACH, OnViewAttach)
	ON_COMMAND(ID_PWLIST_SAVEATTACH, OnPwlistSaveAttach)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SAVEATTACH, OnUpdatePwlistSaveAttach)
	ON_COMMAND(ID_FILE_SHOWDBINFO, OnFileShowDbInfo)
	ON_UPDATE_COMMAND_UI(ID_FILE_SHOWDBINFO, OnUpdateFileShowDbInfo)
	ON_COMMAND(ID_EXTRAS_SHOWEXPIRED, OnExtrasShowExpired)
	ON_UPDATE_COMMAND_UI(ID_EXTRAS_SHOWEXPIRED, OnUpdateExtrasShowExpired)
	ON_COMMAND(ID_IMPORT_PVAULT, OnImportPvault)
	ON_UPDATE_COMMAND_UI(ID_IMPORT_PVAULT, OnUpdateImportPvault)
	ON_COMMAND(ID_SAFE_EXPORTGROUP_TXT, OnSafeExportGroupTxt)
	ON_UPDATE_COMMAND_UI(ID_SAFE_EXPORTGROUP_TXT, OnUpdateSafeExportGroupTxt)
	ON_COMMAND(ID_PWLIST_SELECTALL, OnPwlistSelectAll)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_SELECTALL, OnUpdatePwlistSelectAll)
	ON_COMMAND(ID_VIEW_AUTOSORT_CREATION, OnViewAutosortCreation)
	ON_COMMAND(ID_VIEW_AUTOSORT_EXPIRE, OnViewAutosortExpire)
	ON_COMMAND(ID_VIEW_AUTOSORT_LASTACCESS, OnViewAutosortLastaccess)
	ON_COMMAND(ID_VIEW_AUTOSORT_LASTMODIFY, OnViewAutosortLastmodify)
	ON_COMMAND(ID_VIEW_AUTOSORT_NOSORT, OnViewAutosortNosort)
	ON_COMMAND(ID_VIEW_AUTOSORT_NOTES, OnViewAutosortNotes)
	ON_COMMAND(ID_VIEW_AUTOSORT_PASSWORD, OnViewAutosortPassword)
	ON_COMMAND(ID_VIEW_AUTOSORT_TITLE, OnViewAutosortTitle)
	ON_COMMAND(ID_VIEW_AUTOSORT_URL, OnViewAutosortUrl)
	ON_COMMAND(ID_VIEW_AUTOSORT_USER, OnViewAutosortUser)
	ON_UPDATE_COMMAND_UI(ID_SAFE_OPTIONS, OnUpdateSafeOptions)
	ON_COMMAND(ID_PWLIST_AUTOTYPE, OnPwlistAutoType)
	ON_UPDATE_COMMAND_UI(ID_PWLIST_AUTOTYPE, OnUpdatePwlistAutoType)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_PWLIST, OnColumnClickPwlist)
	ON_COMMAND(ID_EXTRAS_PLUGINMGR, OnExtrasPluginMgr)
	ON_MESSAGE(WM_HOTKEY, OnHotKey)
	ON_COMMAND(ID_IMPORT_GETMORE, OnImportGetMore)
	ON_COMMAND(ID_INFO_DONATE, OnInfoDonate)
	ON_COMMAND(ID_EXTRAS_REPAIRDB, OnExtrasRepairDb)
	ON_UPDATE_COMMAND_UI(ID_EXTRAS_REPAIRDB, OnUpdateExtrasRepairDb)
	ON_COMMAND(ID_IMPORT_KEEPASS, OnImportKeePass)
	ON_UPDATE_COMMAND_UI(ID_IMPORT_KEEPASS, OnUpdateImportKeePass)
	ON_COMMAND(ID_SAFE_EXPORTGROUP_KEEPASS, OnSafeExportGroupKeePass)
	ON_UPDATE_COMMAND_UI(ID_SAFE_EXPORTGROUP_KEEPASS, OnUpdateSafeExportGroupKeePass)
	ON_COMMAND(ID_EXPORT_KEEPASS, OnExportKeePass)
	ON_UPDATE_COMMAND_UI(ID_EXPORT_KEEPASS, OnUpdateExportKeePass)
	ON_COMMAND(ID_VIEW_SIMPLETANVIEW, OnViewSimpleTANView)
	ON_COMMAND(ID_VIEW_SHOWTANINDICES, OnViewShowTANIndices)
	ON_UPDATE_COMMAND_UI(ID_EXTRAS_GENPW, OnUpdateExtrasGenPw)
	ON_UPDATE_COMMAND_UI(ID_INFO_ABOUT, OnUpdateInfoAbout)
	ON_COMMAND(ID_INFO_CHKFORUPD, OnInfoChkForUpd)
	ON_UPDATE_COMMAND_UI(ID_VIEW_HIDE, OnUpdateViewHide)
	//}}AFX_MSG_MAP

	ON_COMMAND_RANGE(WM_PLUGINS_FIRST, WM_PLUGINS_LAST, OnPluginMessage)
	ON_UPDATE_COMMAND_UI_RANGE(WM_PLUGINS_FIRST, WM_PLUGINS_LAST, OnUpdatePluginMessage)
	ON_WM_RENDERFORMAT()
	ON_WM_RENDERALLFORMATS()
	ON_WM_CHANGECBCHAIN()
	ON_WM_DRAWCLIPBOARD()

	ON_WM_QUERYENDSESSION()
	ON_WM_ENDSESSION()
	ON_WM_COPYDATA()

	ON_MESSAGE(WM_WTSSESSION_CHANGE, OnWTSSessionChange)

	ON_REGISTERED_MESSAGE(WM_REG_TASKBARCREATED, OnTaskbarCreated)
	ON_REGISTERED_MESSAGE(WM_REG_PROCESSMAILSLOT, OnProcessMailslot)
	ON_REGISTERED_MESSAGE(WM_REG_KEEPASSCONTROL, OnKeePassControlMessage)
	END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

BOOL CAboutDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	NewGUI_TranslateCWnd(this);
	EnumChildWindows(this->m_hWnd, NewGUI_TranslateWindowCb, 0);

	NewGUI_XPButton(&m_btOK, IDB_OK, IDB_OK);

	NewGUI_ConfigSideBanner(&m_banner, this);
	m_banner.SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME),
		KCSB_ICON_LEFT | KCSB_ICON_VCENTER);

	CString str = TRL("Version ");
	str += PWM_VERSION_STR;
	m_banner.SetTitle(PWM_PRODUCT_NAME);
	m_banner.SetCaption(str);

	m_hWindowIcon = AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDR_MAINFRAME));
	SetIcon(m_hWindowIcon, TRUE);
	SetIcon(m_hWindowIcon, FALSE);

	// NewGUI_MakeHyperLink(&m_hlHomepage);
	// m_hlHomepage.SetURL(CString(PWM_HOMEPAGE));
	str = TRL("Visit KeePass Homepage");
	m_hlHomepage.SetWindowText(str);
	NewGUI_MakeHyperLink(&m_hlHomepage);
	m_hlHomepage.EnableTooltip(FALSE);
	m_hlHomepage.SetNotifyParent(TRUE);
	m_hlHomepage.EnableURL(FALSE);

	str = TRL("Open &Help File"); RemoveAcceleratorTip(&str);
	m_hlHelp.SetWindowText(str);
	NewGUI_MakeHyperLink(&m_hlHelp);
	m_hlHelp.EnableTooltip(FALSE);
	m_hlHelp.SetNotifyParent(TRUE);
	m_hlHelp.EnableURL(FALSE);

	str = TRL("Open &License File"); RemoveAcceleratorTip(&str);
	m_hlLicense.SetWindowText(str);
	NewGUI_MakeHyperLink(&m_hlLicense);
	m_hlLicense.EnableTooltip(FALSE);
	m_hlLicense.SetNotifyParent(TRUE);
	m_hlLicense.EnableURL(FALSE);

	str = TRL("Acknowledgements");
	m_hlCredits.SetWindowText(str);
	NewGUI_MakeHyperLink(&m_hlCredits);
	m_hlCredits.EnableTooltip(FALSE);
	m_hlCredits.SetNotifyParent(TRUE);
	m_hlCredits.EnableURL(FALSE);

	str = TRL("&Donate..."); RemoveAcceleratorTip(&str); str.Remove(_T('.'));
	m_hlDonate.SetWindowText(str);
	NewGUI_MakeHyperLink(&m_hlDonate);
	m_hlDonate.EnableTooltip(FALSE);
	m_hlDonate.SetNotifyParent(TRUE);
	m_hlDonate.EnableURL(FALSE);

	UpdateData(FALSE);

	return TRUE;
}

LRESULT CAboutDlg::OnXHyperLinkClicked(WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);

	if(wParam == IDC_HLINK_HOMEPAGE)
		ShellExecute(NULL, _T("open"), PWM_HOMEPAGE, NULL, NULL, SW_SHOW);
	else if(wParam == IDC_HLINK_HELPFILE)
		_OpenLocalFile(PWM_README_FILE, OLF_OPEN);
	else if(wParam == IDC_HLINK_LICENSEFILE)
		_OpenLocalFile(PWM_LICENSE_FILE, OLF_OPEN);
	else if(wParam == IDC_HLINK_CREDITS)
		WU_OpenAppHelp(PWM_HELP_CREDITS);
	else if(wParam == IDC_HLINK_DONATE)
		ShellExecute(NULL, _T("open"), PWM_URL_DONATE, NULL, NULL, SW_SHOW);
	else return 0;

	OnOK();
	return 0;
}

/////////////////////////////////////////////////////////////////////////////

BOOL CPwSafeDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);

	if(m_bCheckForInstance == TRUE) m_instanceChecker.TrackFirstInstanceRunning();

	srand((unsigned int)time(NULL));
	KPMI_SetMainDialog(this);

	m_bWindowsNewLine = TRUE;
	m_bFileOpen = FALSE;
	m_bFileReadOnly = FALSE;
	m_bLocked = FALSE;
	m_bModified = FALSE;
	m_dwOldListParameters = 0;
	m_bWasMaximized = FALSE;
	m_bCachedToolBarUpdate = FALSE;
	m_bCachedPwlistUpdate = FALSE;
	m_bDragging = FALSE;
	m_bDisplayDialog = FALSE;
	m_hDraggingGroup = NULL;
	// m_bDraggingEntry = FALSE;
	m_bMenuExit = FALSE;
	m_bBlockPwListUpdate = FALSE;
	m_bRestartApplication = FALSE;
	m_mgr.GetNeverExpireTime(&g_tNeverExpire);
	m_nFileRelockCountdown = -1;
	m_bTANsOnly = FALSE;
	m_dwPwListMode = LVS_REPORT;

	m_bHashValid = FALSE;
	ZeroMemory(m_aHashOfFile, 32);

	m_cList.m_pParentI = this;
	m_cList.m_pbShowColumns = (BOOL *)m_bShowColumn;
	m_cGroups.m_pParentI = this;

	m_hArrowCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
	m_hDragLeftRight = AfxGetApp()->LoadStandardCursor(IDC_SIZEWE);
	m_hDragUpDown = AfxGetApp()->LoadStandardCursor(IDC_SIZENS);

	m_menu.LoadMenu(IDR_MAINMENU); // Load the main menu

	// Setup menu style
	m_menu.SetMenuDrawMode(BCMENU_DRAWMODE_XP); // <<<!=>>> BCMENU_DRAWMODE_ORIGINAL
	m_menu.SetSelectDisableMode(FALSE);
	m_menu.SetXPBitmap3D(TRUE);
	m_menu.SetBitmapBackground(RGB(255,0,255));
	m_menu.SetIconSize(16, 16);

	// Make up the main menu, insert the group list and password list menus to the edit menu

	BCMenu *pDest;
	BCMenu *pSrc;
	UINT i;
	UINT uState, uID, uLastID = (UINT)(-1);
	CString str;

	m_popmenu.LoadMenu(IDR_GROUPLIST_MENU);
	pSrc = (BCMenu *)m_popmenu.GetSubMenu(0);
	ASSERT(pSrc != NULL); if(pSrc == NULL) pSrc = &m_popmenu;

	pDest = (BCMenu *)m_menu.GetSubMenu(1);
	ASSERT(pDest != NULL); if(pDest == NULL) pDest = &m_menu;

	// pDest->AppendMenu(MF_SEPARATOR);
	for(i = 0; i < pSrc->GetMenuItemCount(); i++)
	{
		uID = pSrc->GetMenuItemID(i);
		uState = pSrc->GetMenuState(i, MF_BYPOSITION);
		pSrc->GetMenuText(i, str, MF_BYPOSITION);
		if(str == _T("&Rearrange")) continue;
		if(str == _T("&Export To")) continue;
		if(str == _T("Find in t&his Group...")) continue;
		// if((uID == ID_GROUP_MOVETOP) || (uID == ID_GROUP_MOVEBOTTOM)) continue;
		// if((uID == ID_GROUP_MOVEUP) || (uID == ID_GROUP_MOVEDOWN)) continue;
		if(str == _T("Pr&int Group...")) continue;

		if(uLastID != uID) pDest->AppendMenu(uState, uID, (LPTSTR)(LPCTSTR)str);
		uLastID = uID;
	}
	m_popmenu.DestroyMenu();

	// pDest->GetMenuText(0, str, MF_BYPOSITION);
	// if(str.GetLength() == 0) pDest->DeleteMenu(0, MF_BYPOSITION);
	if(pDest->GetMenuItemID(0) == 0) pDest->DeleteMenu(0, MF_BYPOSITION);

	m_popmenu.LoadMenu(IDR_PWLIST_MENU);
	pDest = (BCMenu *)m_menu.GetSubMenu(1);
	ASSERT(pDest != NULL); if(pDest == NULL) pDest = &m_menu;
	pSrc = (BCMenu *)m_popmenu.GetSubMenu(0);
	ASSERT(pSrc != NULL); if(pSrc == NULL) pSrc = &m_popmenu;

	// pDest->AppendMenu(MF_SEPARATOR);
	for(i = 0; i < pSrc->GetMenuItemCount() - 2; i++)
	{
		uID = pSrc->GetMenuItemID(i);
		uState = pSrc->GetMenuState(i, MF_BYPOSITION);
		pSrc->GetMenuText(i, str, MF_BYPOSITION);
		if(str == _T("&Rearrange")) continue;
		// if((uID == ID_PWLIST_MOVETOP) || (uID == ID_PWLIST_MOVEBOTTOM)) continue;
		// if((uID == ID_PWLIST_MOVEUP) || (uID == ID_PWLIST_MOVEDOWN)) continue;

		if(uLastID != uID) pDest->AppendMenu(uState, uID, (LPTSTR)(LPCTSTR)str);
		uLastID = uID;
	}
	m_popmenu.DestroyMenu();

	// Load the translation file
	CPrivateConfigEx cConfig(FALSE);
	TCHAR szTemp[SI_REGSIZE];

	cConfig.Get(PWMKEY_LANG, szTemp);
	LoadTranslationTable(szTemp);
	g_psztNeverExpires = TRL("Never expires");

	cConfig.Get(PWMKEY_DEFAULTATSEQ, szTemp);
	if(szTemp[0] != 0) m_strDefaultAutoTypeSequence = szTemp;
	else m_strDefaultAutoTypeSequence = _T("{USERNAME}{TAB}{PASSWORD}{ENTER}");

	/* cConfig.Get(PWMKEY_PWGEN_OPTIONS, szTemp);
	if(szTemp[0] != 0)
	{
		CString strOptions = szTemp;

		szTemp[0] = 0; szTemp[1] = 0;
		cConfig.Get(PWMKEY_PWGEN_CHARS, szTemp);
		CString strCharSet = szTemp;

		szTemp[0] = 0; szTemp[1] = 0;
		cConfig.Get(PWMKEY_PWGEN_NUMCHARS, szTemp);
		if(szTemp[0] != 0)
			CPwGeneratorDlg::SetOptions(strOptions, strCharSet, (UINT)(_ttoi(szTemp)));
	}
	else CPwGeneratorDlg::SetOptions(CString(_T("11100000001")), CString(_T("")), 16); */

	cConfig.Get(PWMKEY_LASTDIR, szTemp);
	if(_tcslen(szTemp) != 0) SetCurrentDirectory(szTemp);

⌨️ 快捷键说明

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