From f552ef85a74aa6687e61935387e9cd696889771e Mon Sep 17 00:00:00 2001 From: Don Ho Date: Mon, 9 Sep 2013 17:30:24 +0000 Subject: [PATCH] [NEW_FEATURE] (Author: Andreas Jonsson) Change window title if program is running as administrator. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1115 f5eea248-9336-0410-98b8-ebc06183d4e3 --- PowerEditor/src/Notepad_plus.cpp | 22 ++++++++++++++++++++++ PowerEditor/src/Notepad_plus.h | 1 + 2 files changed, 23 insertions(+) diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index b29135365..ca819b76c 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -152,6 +152,25 @@ Notepad_plus::Notepad_plus(): _mainWindowStatus(0), _pDocTab(NULL), _pEditView(N { _toolBar.initTheme(toolIconsDocRoot); } + + // Determine if user is administrator. + BOOL is_admin; + if(NppParameters::getInstance()->getWinVersion() >= WV_VISTA) + { + SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY; + PSID AdministratorsGroup; + is_admin = AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &AdministratorsGroup); + if(is_admin) + { + if(!CheckTokenMembership(NULL, AdministratorsGroup, &is_admin)) + is_admin = FALSE; + FreeSid(AdministratorsGroup); + } + } + else + is_admin = false; + + _isAdministrator = is_admin ? true : false; } // ATTENTION : the order of the destruction is very important @@ -2531,6 +2550,9 @@ void Notepad_plus::setTitle() result += TEXT(" - "); result += _pPublicInterface->getClassName(); + if(_isAdministrator) + result += TEXT(" [Administrator]"); + ::SendMessage(_pPublicInterface->getHSelf(), WM_SETTEXT, 0, (LPARAM)result.c_str()); } diff --git a/PowerEditor/src/Notepad_plus.h b/PowerEditor/src/Notepad_plus.h index 01683b876..ad8583e2e 100644 --- a/PowerEditor/src/Notepad_plus.h +++ b/PowerEditor/src/Notepad_plus.h @@ -416,6 +416,7 @@ private: ButtonDlg _restoreButton; bool _isFileOpening; + bool _isAdministrator; ScintillaCtrls _scintillaCtrls4Plugins;