// DlgSetIni.cpp : 实现文件 // #include "stdafx.h" #include "DBServer.h" #include "DlgSetIni.h" #include "mysqldata.h" #include "N8Process.h" #include "des.h" // CDlgSetIni 对话框 COLORREF g_rgb = RGB(226, 220, 202); // 米黄色; IMPLEMENT_DYNAMIC(CDlgSetIni, CDialog) CDlgSetIni::CDlgSetIni(CWnd* pParent /*=NULL*/) : CDialog(CDlgSetIni::IDD, pParent) , m_strShareAccount(_T("")) , m_strSharePasswd(_T("")) , m_strN8ViewSvrIP(_T("")) , m_strN8ViewUserDir(_T("")) , m_strN8ViewStsDir(_T("")) , m_strN8ViewProductDir(_T("")) , m_strN8ViewShareName(_T("")) , m_strN8ViewShareDir(_T("")) { } CDlgSetIni::~CDlgSetIni() { } void CDlgSetIni::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, ET_SHAREACCOUNT, m_strShareAccount); DDX_Text(pDX, ET_SHAREPASSWD, m_strSharePasswd); DDX_Text(pDX, ET_NEMOVIEWIP, m_strN8ViewSvrIP); DDX_Text(pDX, ET_N8USERDIR, m_strN8ViewUserDir); DDX_Text(pDX, ET_N8DATADIR, m_strN8ViewStsDir); DDX_Text(pDX, ET_N8RPODUCTDIR, m_strN8ViewProductDir); DDX_Text(pDX, ET_N8SHARENAME, m_strN8ViewShareName); DDX_Text(pDX, ET_N8SHAREDIR, m_strN8ViewShareDir); } BEGIN_MESSAGE_MAP(CDlgSetIni, CDialog) ON_BN_CLICKED(IDOK, &CDlgSetIni::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &CDlgSetIni::OnBnClickedCancel) ON_WM_CTLCOLOR() ON_BN_CLICKED(BT_GETPRODUCTDIR, &CDlgSetIni::OnBnClickedGetproductdir) ON_BN_CLICKED(BT_GETUSERDIR, &CDlgSetIni::OnBnClickedGetuserdir) ON_BN_CLICKED(BT_GETDATADIR, &CDlgSetIni::OnBnClickedGetdatadir) ON_BN_CLICKED(BT_IMPORTPRODUCT, &CDlgSetIni::OnBnClickedImportproduct) ON_BN_CLICKED(BT_IMPORTSTAFF, &CDlgSetIni::OnBnClickedImportstaff) ON_BN_CLICKED(BT_GETN8SHAREDIR, &CDlgSetIni::OnBnClickedGetn8sharedir) ON_BN_CLICKED(BT_DISPALYSHARE, &CDlgSetIni::OnBnClickedDispalyshare) END_MESSAGE_MAP() // CDlgSetIni 消息处理程序; BOOL CDlgSetIni::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 m_strShareAccount = g_szShareAccount; m_strSharePasswd = g_szSharePasswd; m_strN8ViewSvrIP = g_szN8ViewSvrIP; m_strN8ViewUserDir = g_szN8ViewUserDir; m_strN8ViewShareName = g_szN8ViewShareName; m_strN8ViewShareDir = g_szN8ViewShareDir; m_strN8ViewProductDir = g_szN8ViewProductDir; m_strN8ViewStsDir = g_szN8ViewStsDir; UpdateData(FALSE); SetDlgItemText(ET_CLOUNDDISKPSW, g_szCloundDiskPsw); SetDlgItemText(ET_CLOUNDDISKACCOUNT, g_szCloundDiskAccount); UpdateData(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CDlgSetIni::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 UpdateData(); TCHAR szFile[MAX_PATH] = {0}; _stprintf_s(szFile, _T("%s\\ServiceInfo.ini"), g_ModulePath); _stprintf_s(g_szShareAccount, _T("%s"), m_strShareAccount.GetString()); _stprintf_s(g_szSharePasswd, _T("%s"), m_strSharePasswd.GetString()); WritePrivateProfileString(_T("NetWorkInfo"), _T("ShareAccount"), m_strShareAccount, szFile); WritePrivateProfileString(_T("NetWorkInfo"), _T("SharePasswd"), m_strSharePasswd, szFile); // NemoInfo; _stprintf_s(g_szN8ViewSvrIP, _T("%s"), m_strN8ViewSvrIP.GetString()); _stprintf_s(g_szN8ViewUserDir, _T("%s"), m_strN8ViewUserDir.GetString()); _stprintf_s(g_szN8ViewStsDir, _T("%s"), m_strN8ViewStsDir.GetString()); _stprintf_s(g_szN8ViewProductDir, _T("%s"), m_strN8ViewProductDir.GetString()); _stprintf_s(g_szN8ViewShareName, _T("%s"), m_strN8ViewShareName.GetString()); _stprintf_s(g_szN8ViewShareDir, _T("%s"), m_strN8ViewShareDir.GetString()); WritePrivateProfileString("NemoInfo", "N8ViewSvr", g_szN8ViewSvrIP, szFile); WritePrivateProfileString("NemoInfo", "N8ViewUserDir", g_szN8ViewUserDir, szFile); WritePrivateProfileString("NemoInfo", "N8ViewStsDir", g_szN8ViewStsDir, szFile); WritePrivateProfileString("NemoInfo", "N8ViewProductDir", g_szN8ViewProductDir, szFile); WritePrivateProfileString("NemoInfo", "N8ViewShareDir", g_szN8ViewShareDir, szFile); WritePrivateProfileString("NemoInfo", "N8ViewShareName", g_szN8ViewShareName, szFile); CString strCloundDiskPsw; CString strCloundDiskAccount; GetDlgItemText(ET_CLOUNDDISKPSW, strCloundDiskPsw); GetDlgItemText(ET_CLOUNDDISKACCOUNT, strCloundDiskAccount); WritePrivateProfileString("SystemInfo", "CloundDiskAccount", strCloundDiskAccount, szFile); // ItCivilian des加密云盘密码,防止泄漏[7/15/2016]; des_crypt(strCloundDiskPsw, strCloundDiskPsw,DES_ENCRYPT); WritePrivateProfileString("SystemInfo", "CloundDiskPsw", strCloundDiskPsw, szFile); OnOK(); } void CDlgSetIni::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 OnCancel(); } HBRUSH CDlgSetIni::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性 if (nCtlColor == CTLCOLOR_SCROLLBAR) // { //pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(0, 0, 0)); pDC->SetBkColor(RGB(233, 233, 220)); HBRUSH b = CreateSolidBrush(RGB(233, 233, 220)); return b; } else if (nCtlColor == CTLCOLOR_EDIT) //更改编辑框 { //pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(0, 0, 0)); pDC->SetBkColor(RGB(234, 234, 234)); HBRUSH b = CreateSolidBrush(RGB(234, 234, 234)); return b; } else if (nCtlColor == CTLCOLOR_STATIC) //更改静态文本 { pDC->SetTextColor(RGB(0, 0, 0)); pDC->SetBkColor(g_rgb); HBRUSH b = CreateSolidBrush(g_rgb); return b; } else if (nCtlColor == CTLCOLOR_DLG) //更改对话框背景色 { pDC->SetTextColor(RGB(0, 0, 0)); pDC->SetBkColor(g_rgb); HBRUSH b = CreateSolidBrush(g_rgb); return b; } // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } void CDlgSetIni::OnBnClickedGetproductdir() // 设置N8选版的产品目录; { TCHAR szN8ViewProductDir[MAX_PATH] = {0}; if ( GetFilePath(szN8ViewProductDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) ) { m_strN8ViewProductDir = szN8ViewProductDir; } UpdateData(FALSE); } void CDlgSetIni::OnBnClickedGetuserdir() { TCHAR szN8ViewUserDir[MAX_PATH] = {0}; if ( GetFilePath(szN8ViewUserDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) ) { m_strN8ViewUserDir = szN8ViewUserDir; } UpdateData(FALSE); } void CDlgSetIni::OnBnClickedGetdatadir() { TCHAR szN8ViewStsDir[MAX_PATH] = {0}; if ( GetFilePath(szN8ViewStsDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) ) { m_strN8ViewStsDir = szN8ViewStsDir; } UpdateData(FALSE); } void CDlgSetIni::OnBnClickedImportproduct() // 导入产品到N8中。productlist; { // 1.从数据库中获取shangpin; CDatabase *pMaindb = NULL; ODBCConnGuard ConnGuard(pMaindb , -1, 3000); if ( pMaindb == NULL ) return; CRecordset myset(pMaindb); CString strSQL = _T("select count(*) as cot from shangpin where [hide] = '上架'"); myset.Open(CRecordset::forwardOnly, strSQL); myset.GetFieldValue(_T("cot"), strSQL); myset.Close(); int nCount = atol(strSQL); CArray AryShangpin; AryShangpin.SetSize(nCount, 1); CRstShangPin rsSt; rsSt.m_pDatabase = pMaindb; rsSt.m_strFilter = _T("[hide] = '上架'"); rsSt.Open(); DWORD dwIndex = 0; while (!rsSt.IsEOF()) { AryShangpin.ElementAt(dwIndex).RemoveAll(); AryShangpin.ElementAt(dwIndex).Add(rsSt.spid); // 商品编号; AryShangpin.ElementAt(dwIndex).Add(rsSt.spname); // 商品名称; AryShangpin.ElementAt(dwIndex).Add(rsSt.width); // 商品宽度; AryShangpin.ElementAt(dwIndex).Add(rsSt.height); // 商品高度; dwIndex++; rsSt.MoveNext(); if (AryShangpin.GetSize() <= dwIndex) break; } rsSt.Close(); AryShangpin.SetSize(dwIndex, 1); // 2.逐条加入; TCHAR szProductListPath[MAX_PATH] = {0}; _stprintf_s(szProductListPath, MAX_PATH, _T("%s\\productlist.xml"), g_szN8ViewProductDir); N8Process::CProductList pl; if ( !pl.LoadXML(szProductListPath) ) { AfxMessageBox(_T("加载N8产品数据失败,将会重新生成文件")); pl.CreateXML(szProductListPath); pl.SetXMLPath(szProductListPath); //return; } for ( int i = 0; i < AryShangpin.GetCount(); i++ ) { //pl.InsertItem(GetGuidString(), AryShangpin.ElementAt(i).ElementAt(1), NULL, NULL); pl.InsertItem(AryShangpin.ElementAt(i).ElementAt(0), AryShangpin.ElementAt(i).ElementAt(1), AryShangpin.ElementAt(i).ElementAt(2), AryShangpin.ElementAt(i).ElementAt(3)); } AfxMessageBox(_T("导入产品到N8成功")); } void CDlgSetIni::OnBnClickedImportstaff() // vgstaff.xml; { // 1.使用user表或者renyuan表; CDatabase *pMaindb = NULL; ODBCConnGuard ConnGuard(pMaindb , -1, 3000); if ( pMaindb == NULL ) return; CRecordset myset(pMaindb); CString strSQL = _T("select count(*) as cot from [accountview]"); myset.Open(CRecordset::forwardOnly, strSQL); myset.GetFieldValue(_T("cot"), strSQL); myset.Close(); int nCount = atol(strSQL); CArray AryUser; AryUser.SetSize(nCount, 1); CRstUser rsSt; rsSt.m_pDatabase = pMaindb; rsSt.Open(); DWORD dwIndex = 0; while (!rsSt.IsEOF()) { AryUser.ElementAt(dwIndex).RemoveAll(); AryUser.ElementAt(dwIndex).Add(rsSt.account); // 账号; AryUser.ElementAt(dwIndex).Add(rsSt.name); // 员工名; dwIndex++; rsSt.MoveNext(); if (AryUser.GetSize() <= dwIndex) break; } rsSt.Close(); AryUser.SetSize(dwIndex, 1); // 2.逐条加入; TCHAR szStaffXMLPath[MAX_PATH] = {0}; _stprintf_s(szStaffXMLPath, MAX_PATH, _T("%s\\VgStaff.xml"), g_szN8ViewProductDir); N8Process::CStaff stf; if ( !stf.LoadXML(szStaffXMLPath) ) { AfxMessageBox(_T("加载N8员工数据失败,将重新生成文件")); stf.CreateXML(szStaffXMLPath); stf.SetXMLPath(szStaffXMLPath); //return; } for ( int i = 0; i < AryUser.GetCount(); i++ ) { stf.InsertItem(AryUser.ElementAt(i).ElementAt(0), AryUser.ElementAt(i).ElementAt(1)); } AfxMessageBox(_T("导入员工到N8成功,要使数据生效请重启N8选版服务器!")); } void CDlgSetIni::OnBnClickedGetn8sharedir() { TCHAR szN8ViewShareDir[MAX_PATH] = {0}; if ( GetFilePath(szN8ViewShareDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) ) { m_strN8ViewShareDir = szN8ViewShareDir; } UpdateData(FALSE); } void CDlgSetIni::OnBnClickedDispalyshare() //应用共享; { UpdateData(); if ( m_strN8ViewShareDir.IsEmpty() ) { AfxMessageBox(_T("请选择要设置共享的N8目录")); TCHAR szN8ViewShareDir[MAX_PATH] = {0}; if ( GetFilePath(szN8ViewShareDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) ) { m_strN8ViewShareDir = szN8ViewShareDir; _stprintf_s(g_szN8ViewShareDir, MAX_PATH, _T("%s"), m_strN8ViewShareDir.GetString()); UpdateData(FALSE); } else return; } if ( m_strN8ViewShareName.IsEmpty() && m_strN8ViewShareDir.Find(_T("\\\\")) == -1 ) { AfxMessageBox(_T("请设置共享目录名")); return; } if ( LanShareDll::LoadLANShareLibrary() ) { TCHAR szN8ViewShareName[MAX_PATH] = {0}; if ( API_IsTheDirectoryShared(m_strN8ViewShareDir, szN8ViewShareName, MAX_PATH) ) { AfxMessageBox(_T("该目录已共享,或请选择其他目录")); _stprintf_s(g_szN8ViewShareName, MAX_PATH, _T("%s"), szN8ViewShareName); m_strN8ViewShareName = szN8ViewShareName; if ( m_strN8ViewShareName.IsEmpty() ) {// 说明m_strN8ViewShareDir已是局域网共享目录; _stprintf_s(g_szN8ViewShareName, MAX_PATH, _T("%s"), m_strN8ViewShareDir.GetString()); m_strN8ViewShareName = m_strN8ViewShareDir; } UpdateData(FALSE); TCHAR szFile[MAX_PATH] = {0}; _stprintf_s(szFile, _T("%s\\ServiceInfo.ini"), g_ModulePath); WritePrivateProfileString("NemoInfo", "N8ViewShareName", g_szN8ViewShareName, szFile); LanShareDll::FreeLANShareLibrary(); return; } if ( LanShareDll::API_AddShareDirectory(m_strN8ViewShareDir, m_strN8ViewShareName) ) { if ( LanShareDll::API_SetNetShareSecurity(m_strN8ViewShareName, _T("Everyone")) ) { if ( LanShareDll::API_AddAccessRights(m_strN8ViewShareDir, _T("Everyone")) ) { AfxMessageBox(_T("设置共享成功")); OnBnClickedOk(); } else { AfxMessageBox(_T("设置安全权限失败")); } } else { AfxMessageBox(_T("设置共享权限失败")); } } else { AfxMessageBox(_T("添加共享目录失败")); } LanShareDll::FreeLANShareLibrary(); } } BOOL CDlgSetIni::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if ( pMsg->message == WM_KEYDOWN ) { if ( pMsg->wParam == VK_CONTROL ) { CWnd *pChildWnd = GetFocus(); if ( pChildWnd->GetDlgCtrlID() == ET_CLOUNDDISKPSW ) { // 显示加密后的明文; CEdit *pCloundPsw = (CEdit*)GetDlgItem(ET_CLOUNDDISKPSW); pCloundPsw->SetPasswordChar(0); pCloundPsw->Invalidate(); } } } else if ( pMsg->message == WM_KEYUP ) { if ( pMsg->wParam == VK_CONTROL ) { // 显示加密后的明文; CEdit *pCloundPsw = (CEdit*)GetDlgItem(ET_CLOUNDDISKPSW); pCloundPsw->SetPasswordChar('*'); pCloundPsw->Invalidate(); } } return CDialog::PreTranslateMessage(pMsg); }