DlgSetIni.cpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. // DlgSetIni.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "DBServer.h"
  5. #include "DlgSetIni.h"
  6. #include "mysqldata.h"
  7. #include "N8Process.h"
  8. #include "des.h"
  9. // CDlgSetIni 对话框
  10. COLORREF g_rgb = RGB(226, 220, 202); // 米黄色;
  11. IMPLEMENT_DYNAMIC(CDlgSetIni, CDialog)
  12. CDlgSetIni::CDlgSetIni(CWnd* pParent /*=NULL*/)
  13. : CDialog(CDlgSetIni::IDD, pParent)
  14. , m_strShareAccount(_T(""))
  15. , m_strSharePasswd(_T(""))
  16. , m_strN8ViewSvrIP(_T(""))
  17. , m_strN8ViewUserDir(_T(""))
  18. , m_strN8ViewStsDir(_T(""))
  19. , m_strN8ViewProductDir(_T(""))
  20. , m_strN8ViewShareName(_T(""))
  21. , m_strN8ViewShareDir(_T(""))
  22. {
  23. }
  24. CDlgSetIni::~CDlgSetIni()
  25. {
  26. }
  27. void CDlgSetIni::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CDialog::DoDataExchange(pDX);
  30. DDX_Text(pDX, ET_SHAREACCOUNT, m_strShareAccount);
  31. DDX_Text(pDX, ET_SHAREPASSWD, m_strSharePasswd);
  32. DDX_Text(pDX, ET_NEMOVIEWIP, m_strN8ViewSvrIP);
  33. DDX_Text(pDX, ET_N8USERDIR, m_strN8ViewUserDir);
  34. DDX_Text(pDX, ET_N8DATADIR, m_strN8ViewStsDir);
  35. DDX_Text(pDX, ET_N8RPODUCTDIR, m_strN8ViewProductDir);
  36. DDX_Text(pDX, ET_N8SHARENAME, m_strN8ViewShareName);
  37. DDX_Text(pDX, ET_N8SHAREDIR, m_strN8ViewShareDir);
  38. }
  39. BEGIN_MESSAGE_MAP(CDlgSetIni, CDialog)
  40. ON_BN_CLICKED(IDOK, &CDlgSetIni::OnBnClickedOk)
  41. ON_BN_CLICKED(IDCANCEL, &CDlgSetIni::OnBnClickedCancel)
  42. ON_WM_CTLCOLOR()
  43. ON_BN_CLICKED(BT_GETPRODUCTDIR, &CDlgSetIni::OnBnClickedGetproductdir)
  44. ON_BN_CLICKED(BT_GETUSERDIR, &CDlgSetIni::OnBnClickedGetuserdir)
  45. ON_BN_CLICKED(BT_GETDATADIR, &CDlgSetIni::OnBnClickedGetdatadir)
  46. ON_BN_CLICKED(BT_IMPORTPRODUCT, &CDlgSetIni::OnBnClickedImportproduct)
  47. ON_BN_CLICKED(BT_IMPORTSTAFF, &CDlgSetIni::OnBnClickedImportstaff)
  48. ON_BN_CLICKED(BT_GETN8SHAREDIR, &CDlgSetIni::OnBnClickedGetn8sharedir)
  49. ON_BN_CLICKED(BT_DISPALYSHARE, &CDlgSetIni::OnBnClickedDispalyshare)
  50. END_MESSAGE_MAP()
  51. // CDlgSetIni 消息处理程序;
  52. BOOL CDlgSetIni::OnInitDialog()
  53. {
  54. CDialog::OnInitDialog();
  55. // TODO: 在此添加额外的初始化
  56. m_strShareAccount = g_szShareAccount;
  57. m_strSharePasswd = g_szSharePasswd;
  58. m_strN8ViewSvrIP = g_szN8ViewSvrIP;
  59. m_strN8ViewUserDir = g_szN8ViewUserDir;
  60. m_strN8ViewShareName = g_szN8ViewShareName;
  61. m_strN8ViewShareDir = g_szN8ViewShareDir;
  62. m_strN8ViewProductDir = g_szN8ViewProductDir;
  63. m_strN8ViewStsDir = g_szN8ViewStsDir;
  64. UpdateData(FALSE);
  65. SetDlgItemText(ET_CLOUNDDISKPSW, g_szCloundDiskPsw);
  66. SetDlgItemText(ET_CLOUNDDISKACCOUNT, g_szCloundDiskAccount);
  67. UpdateData();
  68. return TRUE; // return TRUE unless you set the focus to a control
  69. // 异常: OCX 属性页应返回 FALSE
  70. }
  71. void CDlgSetIni::OnBnClickedOk()
  72. {
  73. // TODO: 在此添加控件通知处理程序代码
  74. UpdateData();
  75. TCHAR szFile[MAX_PATH] = {0};
  76. _stprintf_s(szFile, _T("%s\\ServiceInfo.ini"), g_ModulePath);
  77. _stprintf_s(g_szShareAccount, _T("%s"), m_strShareAccount);
  78. _stprintf_s(g_szSharePasswd, _T("%s"), m_strSharePasswd);
  79. WritePrivateProfileString(_T("NetWorkInfo"), _T("ShareAccount"), m_strShareAccount, szFile);
  80. WritePrivateProfileString(_T("NetWorkInfo"), _T("SharePasswd"), m_strSharePasswd, szFile);
  81. // NemoInfo;
  82. _stprintf_s(g_szN8ViewSvrIP, _T("%s"), m_strN8ViewSvrIP);
  83. _stprintf_s(g_szN8ViewUserDir, _T("%s"), m_strN8ViewUserDir);
  84. _stprintf_s(g_szN8ViewStsDir, _T("%s"), m_strN8ViewStsDir);
  85. _stprintf_s(g_szN8ViewProductDir, _T("%s"), m_strN8ViewProductDir);
  86. _stprintf_s(g_szN8ViewShareName, _T("%s"), m_strN8ViewShareName);
  87. _stprintf_s(g_szN8ViewShareDir, _T("%s"), m_strN8ViewShareDir);
  88. WritePrivateProfileString("NemoInfo", "N8ViewSvr", g_szN8ViewSvrIP, szFile);
  89. WritePrivateProfileString("NemoInfo", "N8ViewUserDir", g_szN8ViewUserDir, szFile);
  90. WritePrivateProfileString("NemoInfo", "N8ViewStsDir", g_szN8ViewStsDir, szFile);
  91. WritePrivateProfileString("NemoInfo", "N8ViewProductDir", g_szN8ViewProductDir, szFile);
  92. WritePrivateProfileString("NemoInfo", "N8ViewShareDir", g_szN8ViewShareDir, szFile);
  93. WritePrivateProfileString("NemoInfo", "N8ViewShareName", g_szN8ViewShareName, szFile);
  94. CString strCloundDiskPsw;
  95. CString strCloundDiskAccount;
  96. GetDlgItemText(ET_CLOUNDDISKPSW, strCloundDiskPsw);
  97. GetDlgItemText(ET_CLOUNDDISKACCOUNT, strCloundDiskAccount);
  98. WritePrivateProfileString("SystemInfo", "CloundDiskAccount", strCloundDiskAccount, szFile);
  99. // ItCivilian des加密云盘密码,防止泄漏[7/15/2016];
  100. des_crypt(strCloundDiskPsw, strCloundDiskPsw,DES_ENCRYPT);
  101. WritePrivateProfileString("SystemInfo", "CloundDiskPsw", strCloundDiskPsw, szFile);
  102. OnOK();
  103. }
  104. void CDlgSetIni::OnBnClickedCancel()
  105. {
  106. // TODO: 在此添加控件通知处理程序代码
  107. OnCancel();
  108. }
  109. HBRUSH CDlgSetIni::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  110. {
  111. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  112. // TODO: 在此更改 DC 的任何属性
  113. if (nCtlColor == CTLCOLOR_SCROLLBAR) //
  114. {
  115. //pDC->SetBkMode(TRANSPARENT);
  116. pDC->SetTextColor(RGB(0, 0, 0));
  117. pDC->SetBkColor(RGB(233, 233, 220));
  118. HBRUSH b = CreateSolidBrush(RGB(233, 233, 220));
  119. return b;
  120. }
  121. else if (nCtlColor == CTLCOLOR_EDIT) //更改编辑框
  122. {
  123. //pDC->SetBkMode(TRANSPARENT);
  124. pDC->SetTextColor(RGB(0, 0, 0));
  125. pDC->SetBkColor(RGB(234, 234, 234));
  126. HBRUSH b = CreateSolidBrush(RGB(234, 234, 234));
  127. return b;
  128. }
  129. else if (nCtlColor == CTLCOLOR_STATIC) //更改静态文本
  130. {
  131. pDC->SetTextColor(RGB(0, 0, 0));
  132. pDC->SetBkColor(g_rgb);
  133. HBRUSH b = CreateSolidBrush(g_rgb);
  134. return b;
  135. }
  136. else if (nCtlColor == CTLCOLOR_DLG) //更改对话框背景色
  137. {
  138. pDC->SetTextColor(RGB(0, 0, 0));
  139. pDC->SetBkColor(g_rgb);
  140. HBRUSH b = CreateSolidBrush(g_rgb);
  141. return b;
  142. }
  143. // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  144. return hbr;
  145. }
  146. void CDlgSetIni::OnBnClickedGetproductdir() // 设置N8选版的产品目录;
  147. {
  148. TCHAR szN8ViewProductDir[MAX_PATH] = {0};
  149. if ( GetFilePath(szN8ViewProductDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  150. {
  151. m_strN8ViewProductDir = szN8ViewProductDir;
  152. }
  153. UpdateData(FALSE);
  154. }
  155. void CDlgSetIni::OnBnClickedGetuserdir()
  156. {
  157. TCHAR szN8ViewUserDir[MAX_PATH] = {0};
  158. if ( GetFilePath(szN8ViewUserDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  159. {
  160. m_strN8ViewUserDir = szN8ViewUserDir;
  161. }
  162. UpdateData(FALSE);
  163. }
  164. void CDlgSetIni::OnBnClickedGetdatadir()
  165. {
  166. TCHAR szN8ViewStsDir[MAX_PATH] = {0};
  167. if ( GetFilePath(szN8ViewStsDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  168. {
  169. m_strN8ViewStsDir = szN8ViewStsDir;
  170. }
  171. UpdateData(FALSE);
  172. }
  173. void CDlgSetIni::OnBnClickedImportproduct() // productlist;
  174. {
  175. // 1.从数据库中获取shangpin;
  176. CRecordset myset(&g_db);
  177. CString strSQL = _T("select count(*) as cot from shangpin where [hide] = '上架'");
  178. myset.Open(CRecordset::forwardOnly, strSQL);
  179. myset.GetFieldValue(_T("cot"), strSQL);
  180. myset.Close();
  181. int nCount = atol(strSQL);
  182. CArray<CStringArray, CStringArray> AryShangpin;
  183. AryShangpin.SetSize(nCount, 1);
  184. CRstShangPin rsSt;
  185. rsSt.m_pDatabase = &g_db;
  186. rsSt.m_strFilter = _T("[hide] = '上架'");
  187. rsSt.Open();
  188. DWORD dwIndex = 0;
  189. while (!rsSt.IsEOF())
  190. {
  191. AryShangpin.ElementAt(dwIndex).RemoveAll();
  192. AryShangpin.ElementAt(dwIndex).Add(rsSt.spid); // 商品编号;
  193. AryShangpin.ElementAt(dwIndex).Add(rsSt.spname); // 商品名称;
  194. dwIndex++;
  195. rsSt.MoveNext();
  196. if (AryShangpin.GetSize() <= dwIndex)
  197. break;
  198. }
  199. rsSt.Close();
  200. AryShangpin.SetSize(dwIndex, 1);
  201. // 2.逐条加入;
  202. TCHAR szProductListPath[MAX_PATH] = {0};
  203. _stprintf_s(szProductListPath, MAX_PATH, _T("%s\\productlist.xml"), g_szN8ViewProductDir);
  204. N8Process::CProductList pl;
  205. if ( !pl.LoadXML(szProductListPath) )
  206. {
  207. AfxMessageBox(_T("加载N8产品数据失败,将会重新生成文件"));
  208. pl.CreateXML(szProductListPath);
  209. pl.SetXMLPath(szProductListPath);
  210. //return;
  211. }
  212. for ( int i = 0; i < AryShangpin.GetCount(); i++ )
  213. {
  214. //pl.InsertItem(GetGuidString(), AryShangpin.ElementAt(i).ElementAt(1), NULL, NULL);
  215. pl.InsertItem(AryShangpin.ElementAt(i).ElementAt(0), AryShangpin.ElementAt(i).ElementAt(1), NULL, NULL);
  216. }
  217. AfxMessageBox(_T("导入产品到N8成功"));
  218. }
  219. void CDlgSetIni::OnBnClickedImportstaff() // vgstaff.xml;
  220. {
  221. // 1.使用user表或者renyuan表;
  222. CRecordset myset(&g_db);
  223. CString strSQL = _T("select count(*) as cot from [accountview]");
  224. myset.Open(CRecordset::forwardOnly, strSQL);
  225. myset.GetFieldValue(_T("cot"), strSQL);
  226. myset.Close();
  227. int nCount = atol(strSQL);
  228. CArray<CStringArray, CStringArray> AryUser;
  229. AryUser.SetSize(nCount, 1);
  230. CRstUser rsSt;
  231. rsSt.m_pDatabase = &g_db;
  232. rsSt.Open();
  233. DWORD dwIndex = 0;
  234. while (!rsSt.IsEOF())
  235. {
  236. AryUser.ElementAt(dwIndex).RemoveAll();
  237. AryUser.ElementAt(dwIndex).Add(rsSt.account); // 账号;
  238. AryUser.ElementAt(dwIndex).Add(rsSt.name); // 员工名;
  239. dwIndex++;
  240. rsSt.MoveNext();
  241. if (AryUser.GetSize() <= dwIndex)
  242. break;
  243. }
  244. rsSt.Close();
  245. AryUser.SetSize(dwIndex, 1);
  246. // 2.逐条加入;
  247. TCHAR szStaffXMLPath[MAX_PATH] = {0};
  248. _stprintf_s(szStaffXMLPath, MAX_PATH, _T("%s\\VgStaff.xml"), g_szN8ViewProductDir);
  249. N8Process::CStaff stf;
  250. if ( !stf.LoadXML(szStaffXMLPath) )
  251. {
  252. AfxMessageBox(_T("加载N8员工数据失败,将重新生成文件"));
  253. stf.CreateXML(szStaffXMLPath);
  254. stf.SetXMLPath(szStaffXMLPath);
  255. //return;
  256. }
  257. for ( int i = 0; i < AryUser.GetCount(); i++ )
  258. {
  259. stf.InsertItem(AryUser.ElementAt(i).ElementAt(0), AryUser.ElementAt(i).ElementAt(1));
  260. }
  261. AfxMessageBox(_T("导入员工到N8成功,要使数据生效请重启N8选版服务器!"));
  262. }
  263. void CDlgSetIni::OnBnClickedGetn8sharedir()
  264. {
  265. TCHAR szN8ViewShareDir[MAX_PATH] = {0};
  266. if ( GetFilePath(szN8ViewShareDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  267. {
  268. m_strN8ViewShareDir = szN8ViewShareDir;
  269. }
  270. UpdateData(FALSE);
  271. }
  272. void CDlgSetIni::OnBnClickedDispalyshare() //应用共享;
  273. {
  274. UpdateData();
  275. if ( m_strN8ViewShareDir.IsEmpty() )
  276. {
  277. AfxMessageBox(_T("请选择要设置共享的N8目录"));
  278. TCHAR szN8ViewShareDir[MAX_PATH] = {0};
  279. if ( GetFilePath(szN8ViewShareDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  280. {
  281. m_strN8ViewShareDir = szN8ViewShareDir;
  282. _stprintf_s(g_szN8ViewShareDir, MAX_PATH, _T("%s"), m_strN8ViewShareDir.GetString());
  283. UpdateData(FALSE);
  284. }
  285. else
  286. return;
  287. }
  288. if ( m_strN8ViewShareName.IsEmpty() && m_strN8ViewShareDir.Find(_T("\\\\")) == -1 )
  289. {
  290. AfxMessageBox(_T("请设置共享目录名"));
  291. return;
  292. }
  293. if ( LanShareDll::LoadLANShareLibrary() )
  294. {
  295. TCHAR szN8ViewShareName[MAX_PATH] = {0};
  296. if ( API_IsTheDirectoryShared(m_strN8ViewShareDir, szN8ViewShareName, MAX_PATH) )
  297. {
  298. AfxMessageBox(_T("该目录已共享,或请选择其他目录"));
  299. _stprintf_s(g_szN8ViewShareName, MAX_PATH, _T("%s"), szN8ViewShareName);
  300. m_strN8ViewShareName = szN8ViewShareName;
  301. if ( m_strN8ViewShareName.IsEmpty() )
  302. {// 说明m_strN8ViewShareDir已是局域网共享目录;
  303. _stprintf_s(g_szN8ViewShareName, MAX_PATH, _T("%s"), m_strN8ViewShareDir);
  304. m_strN8ViewShareName = m_strN8ViewShareDir;
  305. }
  306. UpdateData(FALSE);
  307. TCHAR szFile[MAX_PATH] = {0};
  308. _stprintf_s(szFile, _T("%s\\ServiceInfo.ini"), g_ModulePath);
  309. WritePrivateProfileString("NemoInfo", "N8ViewShareName", g_szN8ViewShareName, szFile);
  310. LanShareDll::FreeLANShareLibrary();
  311. return;
  312. }
  313. if ( LanShareDll::API_AddShareDirectory(m_strN8ViewShareDir, m_strN8ViewShareName) )
  314. {
  315. if ( LanShareDll::API_SetNetShareSecurity(m_strN8ViewShareName, _T("Everyone")) )
  316. {
  317. if ( LanShareDll::API_AddAccessRights(m_strN8ViewShareDir, _T("Everyone")) )
  318. {
  319. AfxMessageBox(_T("设置共享成功"));
  320. OnBnClickedOk();
  321. }
  322. else
  323. {
  324. AfxMessageBox(_T("设置安全权限失败"));
  325. }
  326. }
  327. else
  328. {
  329. AfxMessageBox(_T("设置共享权限失败"));
  330. }
  331. }
  332. else
  333. {
  334. AfxMessageBox(_T("添加共享目录失败"));
  335. }
  336. LanShareDll::FreeLANShareLibrary();
  337. }
  338. }
  339. BOOL CDlgSetIni::PreTranslateMessage(MSG* pMsg)
  340. {
  341. // TODO: 在此添加专用代码和/或调用基类
  342. if ( pMsg->message == WM_KEYDOWN )
  343. {
  344. if ( pMsg->wParam == VK_CONTROL )
  345. {
  346. CWnd *pChildWnd = GetFocus();
  347. if ( pChildWnd->GetDlgCtrlID() == ET_CLOUNDDISKPSW )
  348. {
  349. // 显示加密后的明文;
  350. CEdit *pCloundPsw = (CEdit*)GetDlgItem(ET_CLOUNDDISKPSW);
  351. pCloundPsw->SetPasswordChar(0);
  352. pCloundPsw->Invalidate();
  353. }
  354. }
  355. }
  356. else if ( pMsg->message == WM_KEYUP )
  357. {
  358. if ( pMsg->wParam == VK_CONTROL )
  359. {
  360. // 显示加密后的明文;
  361. CEdit *pCloundPsw = (CEdit*)GetDlgItem(ET_CLOUNDDISKPSW);
  362. pCloundPsw->SetPasswordChar('*');
  363. pCloundPsw->Invalidate();
  364. }
  365. }
  366. return CDialog::PreTranslateMessage(pMsg);
  367. }