📄 proppagentstartup.cpp
字号:
// PropPageNtStartup.cpp : implementation file//#include "stdafx.h"#include "warmmcsnapin.h"#include "PropPageNtStartup.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CPropPageNtStartup property pageIMPLEMENT_DYNCREATE(CPropPageNtStartup, CPropertyPage)CPropPageNtStartup::CPropPageNtStartup(war_if_server_ptr_t& serverPtr) : CPropertyPage(CPropPageNtStartup::IDD),mServerPtr(serverPtr){ //{{AFX_DATA_INIT(CPropPageNtStartup) m_bRunAsNtService = serverPtr->mIsNtService(); m_bAutostart = serverPtr->mIsAutoStartNtService(); m_User = serverPtr->GetLoginName().c_str(); m_Passwd = serverPtr->GetLoginPasswd().GetValue().c_str(); m_Priority = 2; m_bRunAsLocalSystem = _tcscmp(m_User, _T("System")) == 0; //}}AFX_DATA_INIT if (m_User.IsEmpty()) m_bRunAsLocalSystem = TRUE; m_bOrigRunAsNtService = m_bRunAsNtService; m_bOrigAutostart = m_bAutostart; m_bOrigRunAsLocalSystem = m_bRunAsLocalSystem; m_OrigUser = m_User; m_OrigPasswd = m_Passwd;}CPropPageNtStartup::~CPropPageNtStartup(){}void CPropPageNtStartup::DoDataExchange(CDataExchange* pDX){ CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPropPageNtStartup) DDX_Check(pDX, IDC_NT_SERVICE, m_bRunAsNtService); DDX_Check(pDX, IDC_AUTOSTART, m_bAutostart); DDX_Check(pDX, IDC_BE_SYSTEM, m_bRunAsLocalSystem); DDX_Text(pDX, IDC_USER, m_User); DDX_Text(pDX, IDC_PASSWORD, m_Passwd); DDX_Radio(pDX, IDC_PRIORITY_REALTIME, m_Priority); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CPropPageNtStartup, CPropertyPage) //{{AFX_MSG_MAP(CPropPageNtStartup) ON_BN_CLICKED(IDC_NT_SERVICE, OnNtService) ON_BN_CLICKED(IDC_BE_SYSTEM, OnBeSystem) ON_BN_CLICKED(IDC_PRIORITY_REALTIME, OnChanged) ON_BN_CLICKED(IDC_PRIORITY_HIGH, OnChanged) ON_BN_CLICKED(IDC_PRIORITY_NORMAL, OnChanged) ON_BN_CLICKED(IDC_PRIORITY_LOW, OnChanged) ON_BN_CLICKED(IDC_PRIORITY_IDLE, OnChanged) ON_EN_CHANGE(IDC_USER, OnChanged) ON_EN_CHANGE(IDC_PASSWORD, OnChanged) ON_BN_CLICKED(IDC_AUTOSTART, OnChanged) ON_BN_CLICKED(IDC_PRIORITY_LOWER, OnChanged) //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CPropPageNtStartup message handlersBOOL CPropPageNtStartup::OnInitDialog() { CPropertyPage::OnInitDialog(); EnableDisableControls(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE}void CPropPageNtStartup::OnNtService() { SetModified(); EnableDisableControls();}void CPropPageNtStartup::OnBeSystem() { SetModified(); EnableDisableControls();}void CPropPageNtStartup::EnableDisableControls(){ UpdateData(); GetDlgItem(IDC_AUTOSTART)->EnableWindow(m_bRunAsNtService); GetDlgItem(IDC_BE_SYSTEM)->EnableWindow(m_bRunAsNtService); GetDlgItem(IDC_USER)->EnableWindow(m_bRunAsNtService && !m_bRunAsLocalSystem); GetDlgItem(IDC_PASSWORD)->EnableWindow(m_bRunAsNtService && !m_bRunAsLocalSystem);}BOOL CPropPageNtStartup::OnApply() { UpdateData(); // See if we really need to do anything if ((m_bOrigRunAsNtService != m_bRunAsNtService) || (m_bOrigAutostart != m_bAutostart) || (m_bOrigRunAsLocalSystem != m_bRunAsLocalSystem) || (!m_bRunAsLocalSystem && ((_tcscmp(m_OrigUser, m_User) != 0) || (_tcscmp(m_OrigPasswd, m_Passwd) != 0)))) { try { if (!m_bRunAsNtService && mServerPtr->mIsNtService()) mServerPtr->UninstallNtService(); // Uninstall as NT service } catch(WarException& ex) { WarCollector<TCHAR> msg; msg << "Failed to uninstall NT service.\r\n" << ex.Explain(); AfxMessageBox(msg.GetValue().c_str()); } if (m_bRunAsNtService) { try { // Install as NT service mServerPtr->InstallNtService(m_bAutostart, m_bRunAsLocalSystem ? (war_ccsysstr_t)NULL : m_User, m_bRunAsLocalSystem ? (war_ccsysstr_t)NULL : m_Passwd); } catch(WarException& ex) { WarCollector<TCHAR> msg; msg << "Failed to install as NT service.\r\n" << ex.Explain(); AfxMessageBox(msg.GetValue().c_str()); return FALSE; } } m_bOrigRunAsNtService = m_bRunAsNtService; m_bOrigAutostart = m_bAutostart; m_bOrigRunAsLocalSystem = m_bRunAsLocalSystem; m_OrigUser = m_User; m_OrigPasswd = m_Passwd; } mServerPtr->SetPriority((WarPrioritiesDefE)m_Priority); return CPropertyPage::OnApply();}void CPropPageNtStartup::OnChanged() { SetModified();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -