DlgSetIni.cpp 12 KB

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