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

📄 proppagentstartup.cpp

📁 ftpserver very good sample
💻 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 + -