DlgSetIni.cpp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  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.GetString());
  78. _stprintf_s(g_szSharePasswd, _T("%s"), m_strSharePasswd.GetString());
  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.GetString());
  83. _stprintf_s(g_szN8ViewUserDir, _T("%s"), m_strN8ViewUserDir.GetString());
  84. _stprintf_s(g_szN8ViewStsDir, _T("%s"), m_strN8ViewStsDir.GetString());
  85. _stprintf_s(g_szN8ViewProductDir, _T("%s"), m_strN8ViewProductDir.GetString());
  86. _stprintf_s(g_szN8ViewShareName, _T("%s"), m_strN8ViewShareName.GetString());
  87. _stprintf_s(g_szN8ViewShareDir, _T("%s"), m_strN8ViewShareDir.GetString());
  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() // 导入产品到N8中。productlist;
  174. {
  175. // 1.从数据库中获取shangpin;
  176. CDatabase *pMaindb = NULL;
  177. ODBCConnGuard ConnGuard(pMaindb , -1, 3000);
  178. if ( pMaindb == NULL )
  179. return;
  180. CRecordset myset(pMaindb);
  181. CString strSQL = _T("select count(*) as cot from shangpin where [hide] = '上架'");
  182. myset.Open(CRecordset::forwardOnly, strSQL);
  183. myset.GetFieldValue(_T("cot"), strSQL);
  184. myset.Close();
  185. int nCount = atol(strSQL);
  186. CArray<CStringArray, CStringArray> AryShangpin;
  187. AryShangpin.SetSize(nCount, 1);
  188. CRstShangPin rsSt;
  189. rsSt.m_pDatabase = pMaindb;
  190. rsSt.m_strFilter = _T("[hide] = '上架'");
  191. rsSt.Open();
  192. DWORD dwIndex = 0;
  193. while (!rsSt.IsEOF())
  194. {
  195. AryShangpin.ElementAt(dwIndex).RemoveAll();
  196. AryShangpin.ElementAt(dwIndex).Add(rsSt.spid); // 商品编号;
  197. AryShangpin.ElementAt(dwIndex).Add(rsSt.spname); // 商品名称;
  198. AryShangpin.ElementAt(dwIndex).Add(rsSt.width); // 商品宽度;
  199. AryShangpin.ElementAt(dwIndex).Add(rsSt.height); // 商品高度;
  200. dwIndex++;
  201. rsSt.MoveNext();
  202. if (AryShangpin.GetSize() <= dwIndex)
  203. break;
  204. }
  205. rsSt.Close();
  206. AryShangpin.SetSize(dwIndex, 1);
  207. // 2.逐条加入;
  208. TCHAR szProductListPath[MAX_PATH] = {0};
  209. _stprintf_s(szProductListPath, MAX_PATH, _T("%s\\productlist.xml"), g_szN8ViewProductDir);
  210. N8Process::CProductList pl;
  211. if ( !pl.LoadXML(szProductListPath) )
  212. {
  213. AfxMessageBox(_T("加载N8产品数据失败,将会重新生成文件"));
  214. pl.CreateXML(szProductListPath);
  215. pl.SetXMLPath(szProductListPath);
  216. //return;
  217. }
  218. for ( int i = 0; i < AryShangpin.GetCount(); i++ )
  219. {
  220. //pl.InsertItem(GetGuidString(), AryShangpin.ElementAt(i).ElementAt(1), NULL, NULL);
  221. pl.InsertItem(AryShangpin.ElementAt(i).ElementAt(0), AryShangpin.ElementAt(i).ElementAt(1), AryShangpin.ElementAt(i).ElementAt(2), AryShangpin.ElementAt(i).ElementAt(3));
  222. }
  223. AfxMessageBox(_T("导入产品到N8成功"));
  224. }
  225. void CDlgSetIni::OnBnClickedImportstaff() // vgstaff.xml;
  226. {
  227. // 1.使用user表或者renyuan表;
  228. CDatabase *pMaindb = NULL;
  229. ODBCConnGuard ConnGuard(pMaindb , -1, 3000);
  230. if ( pMaindb == NULL )
  231. return;
  232. CRecordset myset(pMaindb);
  233. CString strSQL = _T("select count(*) as cot from [accountview]");
  234. myset.Open(CRecordset::forwardOnly, strSQL);
  235. myset.GetFieldValue(_T("cot"), strSQL);
  236. myset.Close();
  237. int nCount = atol(strSQL);
  238. CArray<CStringArray, CStringArray> AryUser;
  239. AryUser.SetSize(nCount, 1);
  240. CRstUser rsSt;
  241. rsSt.m_pDatabase = pMaindb;
  242. rsSt.Open();
  243. DWORD dwIndex = 0;
  244. while (!rsSt.IsEOF())
  245. {
  246. AryUser.ElementAt(dwIndex).RemoveAll();
  247. AryUser.ElementAt(dwIndex).Add(rsSt.account); // 账号;
  248. AryUser.ElementAt(dwIndex).Add(rsSt.name); // 员工名;
  249. dwIndex++;
  250. rsSt.MoveNext();
  251. if (AryUser.GetSize() <= dwIndex)
  252. break;
  253. }
  254. rsSt.Close();
  255. AryUser.SetSize(dwIndex, 1);
  256. // 2.逐条加入;
  257. TCHAR szStaffXMLPath[MAX_PATH] = {0};
  258. _stprintf_s(szStaffXMLPath, MAX_PATH, _T("%s\\VgStaff.xml"), g_szN8ViewProductDir);
  259. N8Process::CStaff stf;
  260. if ( !stf.LoadXML(szStaffXMLPath) )
  261. {
  262. AfxMessageBox(_T("加载N8员工数据失败,将重新生成文件"));
  263. stf.CreateXML(szStaffXMLPath);
  264. stf.SetXMLPath(szStaffXMLPath);
  265. //return;
  266. }
  267. for ( int i = 0; i < AryUser.GetCount(); i++ )
  268. {
  269. stf.InsertItem(AryUser.ElementAt(i).ElementAt(0), AryUser.ElementAt(i).ElementAt(1));
  270. }
  271. AfxMessageBox(_T("导入员工到N8成功,要使数据生效请重启N8选版服务器!"));
  272. }
  273. void CDlgSetIni::OnBnClickedGetn8sharedir()
  274. {
  275. TCHAR szN8ViewShareDir[MAX_PATH] = {0};
  276. if ( GetFilePath(szN8ViewShareDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  277. {
  278. m_strN8ViewShareDir = szN8ViewShareDir;
  279. }
  280. UpdateData(FALSE);
  281. }
  282. void CDlgSetIni::OnBnClickedDispalyshare() //应用共享;
  283. {
  284. UpdateData();
  285. if ( m_strN8ViewShareDir.IsEmpty() )
  286. {
  287. AfxMessageBox(_T("请选择要设置共享的N8目录"));
  288. TCHAR szN8ViewShareDir[MAX_PATH] = {0};
  289. if ( GetFilePath(szN8ViewShareDir, GetActiveWindow()->GetSafeHwnd(), _T("请选择源相片的文件夹!"), BIF_USENEWUI | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS) )
  290. {
  291. m_strN8ViewShareDir = szN8ViewShareDir;
  292. _stprintf_s(g_szN8ViewShareDir, MAX_PATH, _T("%s"), m_strN8ViewShareDir.GetString());
  293. UpdateData(FALSE);
  294. }
  295. else
  296. return;
  297. }
  298. if ( m_strN8ViewShareName.IsEmpty() && m_strN8ViewShareDir.Find(_T("\\\\")) == -1 )
  299. {
  300. AfxMessageBox(_T("请设置共享目录名"));
  301. return;
  302. }
  303. if ( LanShareDll::LoadLANShareLibrary() )
  304. {
  305. TCHAR szN8ViewShareName[MAX_PATH] = {0};
  306. if ( API_IsTheDirectoryShared(m_strN8ViewShareDir, szN8ViewShareName, MAX_PATH) )
  307. {
  308. AfxMessageBox(_T("该目录已共享,或请选择其他目录"));
  309. _stprintf_s(g_szN8ViewShareName, MAX_PATH, _T("%s"), szN8ViewShareName);
  310. m_strN8ViewShareName = szN8ViewShareName;
  311. if ( m_strN8ViewShareName.IsEmpty() )
  312. {// 说明m_strN8ViewShareDir已是局域网共享目录;
  313. _stprintf_s(g_szN8ViewShareName, MAX_PATH, _T("%s"), m_strN8ViewShareDir.GetString());
  314. m_strN8ViewShareName = m_strN8ViewShareDir;
  315. }
  316. UpdateData(FALSE);
  317. TCHAR szFile[MAX_PATH] = {0};
  318. _stprintf_s(szFile, _T("%s\\ServiceInfo.ini"), g_ModulePath);
  319. WritePrivateProfileString("NemoInfo", "N8ViewShareName", g_szN8ViewShareName, szFile);
  320. LanShareDll::FreeLANShareLibrary();
  321. return;
  322. }
  323. if ( LanShareDll::API_AddShareDirectory(m_strN8ViewShareDir, m_strN8ViewShareName) )
  324. {
  325. if ( LanShareDll::API_SetNetShareSecurity(m_strN8ViewShareName, _T("Everyone")) )
  326. {
  327. if ( LanShareDll::API_AddAccessRights(m_strN8ViewShareDir, _T("Everyone")) )
  328. {
  329. AfxMessageBox(_T("设置共享成功"));
  330. OnBnClickedOk();
  331. }
  332. else
  333. {
  334. AfxMessageBox(_T("设置安全权限失败"));
  335. }
  336. }
  337. else
  338. {
  339. AfxMessageBox(_T("设置共享权限失败"));
  340. }
  341. }
  342. else
  343. {
  344. AfxMessageBox(_T("添加共享目录失败"));
  345. }
  346. LanShareDll::FreeLANShareLibrary();
  347. }
  348. }
  349. BOOL CDlgSetIni::PreTranslateMessage(MSG* pMsg)
  350. {
  351. // TODO: 在此添加专用代码和/或调用基类
  352. if ( pMsg->message == WM_KEYDOWN )
  353. {
  354. if ( pMsg->wParam == VK_CONTROL )
  355. {
  356. CWnd *pChildWnd = GetFocus();
  357. if ( pChildWnd->GetDlgCtrlID() == ET_CLOUNDDISKPSW )
  358. {
  359. // 显示加密后的明文;
  360. CEdit *pCloundPsw = (CEdit*)GetDlgItem(ET_CLOUNDDISKPSW);
  361. pCloundPsw->SetPasswordChar(0);
  362. pCloundPsw->Invalidate();
  363. }
  364. }
  365. }
  366. else if ( pMsg->message == WM_KEYUP )
  367. {
  368. if ( pMsg->wParam == VK_CONTROL )
  369. {
  370. // 显示加密后的明文;
  371. CEdit *pCloundPsw = (CEdit*)GetDlgItem(ET_CLOUNDDISKPSW);
  372. pCloundPsw->SetPasswordChar('*');
  373. pCloundPsw->Invalidate();
  374. }
  375. }
  376. return CDialog::PreTranslateMessage(pMsg);
  377. }