📄 pwsafedlg.cpp
字号:
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 + -