ConfigSysView.cpp
上传用户:maryhy001
上传日期:2007-05-02
资源大小:2317k
文件大小:6k
源码类别:

网格计算

开发平台:

Visual C++

  1. // ConfigSysView.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "trfAgent.h"
  5. #include "ConfigSysView.h"
  6. #include "xshell.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CConfigSysView property page
  14. IMPLEMENT_DYNCREATE(CConfigSysView, CPropertyPage)
  15. CConfigSysView::CConfigSysView() : CPropertyPage(CConfigSysView::IDD)
  16. {
  17. CString str = ENV_SYSROOTDIR;
  18. str += ENV_DEFAULT_RECVFLEDIR;
  19. //{{AFX_DATA_INIT(CConfigSysView)
  20. m_bAutoDelSndedFiles = TRUE;
  21. m_bMinToHide = TRUE;
  22. m_sRecvDestDir = str;
  23. m_bStartToHide = TRUE;
  24. m_bAutoRun = FALSE;
  25. //}}AFX_DATA_INIT
  26. }
  27. CConfigSysView::~CConfigSysView()
  28. {
  29. }
  30. void CConfigSysView::DoDataExchange(CDataExchange* pDX)
  31. {
  32. CPropertyPage::DoDataExchange(pDX);
  33. //{{AFX_DATA_MAP(CConfigSysView)
  34. DDX_Control(pDX, IDC_BTNSELSOUND, m_oSelSound);
  35. DDX_Control(pDX, IDC_BTNSELDESTDIR, m_oSelDestdir);
  36. DDX_Control(pDX, IDC_ALARMSOUND, m_oAlarmsound);
  37. DDX_Check(pDX, IDC_AUTODELSNDEDFILE, m_bAutoDelSndedFiles);
  38. DDX_Check(pDX, IDC_MINTOHIDE, m_bMinToHide);
  39. DDX_Text(pDX, IDC_RECVDESTDIR, m_sRecvDestDir);
  40. DDX_Check(pDX, IDC_STARTTOHIDE, m_bStartToHide);
  41. DDX_Check(pDX, IDC_AUTORENAME, m_bAutoRun);
  42. //}}AFX_DATA_MAP
  43. }
  44. BEGIN_MESSAGE_MAP(CConfigSysView, CPropertyPage)
  45. //{{AFX_MSG_MAP(CConfigSysView)
  46. ON_COMMAND(IDC_BTNSELDESTDIR, OnSelectDestDir)
  47. ON_COMMAND(IDC_BTNSELSOUND, OnSelectSoundFile)
  48. //}}AFX_MSG_MAP
  49. END_MESSAGE_MAP()
  50. BOOL CConfigSysView::Refresh()
  51. {
  52. //Load setting from registry
  53. CRegister regKey;
  54. if(!regKey.Open(HKEY_CURRENT_USER, REG_SSYSSETTINGKEY))
  55. {
  56. TRACE0("Failed to open the registry keyn");
  57. return FALSE;
  58. }
  59. //@1---SysView
  60. //BOOL
  61. BOOL l = regKey.Read_Bool_Value(REG_BAUTODELSNDEDFILE);
  62. this->m_bAutoDelSndedFiles = l;
  63. l = regKey.Read_Bool_Value(REG_BAUTORUNWINSTART);
  64. this->m_bAutoRun = l;
  65. l = regKey.Read_Bool_Value(REG_BAUTODELSNDEDFILE);
  66. this->m_bAutoDelSndedFiles = l;
  67. l = regKey.Read_Bool_Value(REG_BSTARTTOHIDE);
  68. this->m_bStartToHide = l;
  69. l = regKey.Read_Bool_Value(REG_BMINITOHIDE);
  70. this->m_bMinToHide = l;
  71. //String
  72. CString strValue;
  73. strValue = regKey.Read_String_Value(REG_SRECVFLESDIR);
  74. if(strValue.IsEmpty())
  75. {
  76. strValue = ENV_SYSROOTDIR;
  77. strValue += ENV_DEFAULT_RECVFLEDIR;
  78. }
  79. this->m_sRecvDestDir = strValue;
  80. //
  81. for (int i = this->m_oAlarmsound.GetCount()-1; i > -1; --i)
  82. {
  83. this->m_oAlarmsound.DeleteString(i);
  84. }
  85. this->m_oAlarmsound.AddString(ENV_DEFAULT_ALARMSOUND);
  86. strValue = regKey.Read_String_Value(REG_SALARMSOUND);
  87. if(!strValue.IsEmpty() && strValue.CompareNoCase(ENV_DEFAULT_ALARMSOUND))
  88. {
  89. this->m_oAlarmsound.InsertString(
  90. this->m_oAlarmsound.GetCount(), strValue);
  91. }
  92. else if(strValue.IsEmpty())
  93. {
  94. regKey.Write_String_Value(REG_SALARMSOUND, ENV_DEFAULT_ALARMSOUND);
  95. }
  96. //Controls
  97. int index = this->m_oAlarmsound.GetCount();
  98. this->m_oAlarmsound.SetCurSel(index-1);
  99. this->UpdateData(FALSE);
  100. return TRUE;
  101. }
  102. BOOL CConfigSysView::OnSetActive() 
  103. {
  104. return CPropertyPage::OnSetActive();
  105. }
  106. void CConfigSysView::OnOK() 
  107. {
  108. //Load setting from registry
  109. CRegister regKey;
  110. if(!regKey.Open(HKEY_CURRENT_USER, REG_SSYSSETTINGKEY))
  111. {
  112. TRACE0("Failed to open the registry keyn");
  113. return ;
  114. }
  115. //@1---SysView
  116. //BOOL
  117. BOOL l = regKey.Write_Bool_Value(REG_BAUTODELSNDEDFILE, m_bAutoDelSndedFiles);
  118. if(!l)
  119. {
  120. TRACE0("Failed to write bool key valuen");
  121. return ;
  122. }
  123. l = regKey.Write_Bool_Value(REG_BAUTORUNWINSTART, m_bAutoRun);
  124. if(!l)
  125. {
  126. TRACE0("Failed to write bool key valuen");
  127. return ;
  128. }
  129. l = regKey.Write_Bool_Value(REG_BAUTODELSNDEDFILE, m_bAutoDelSndedFiles);
  130. if(!l)
  131. {
  132. TRACE0("Failed to write bool key valuen");
  133. return ;
  134. }
  135. l = regKey.Write_Bool_Value(REG_BSTARTTOHIDE, m_bStartToHide);
  136. if(!l)
  137. {
  138. TRACE0("Failed to write bool key valuen");
  139. return ;
  140. }
  141. l = regKey.Write_Bool_Value(REG_BMINITOHIDE, m_bMinToHide);
  142. if(!l)
  143. {
  144. TRACE0("Failed to write bool key valuen");
  145. return ;
  146. }
  147. //String
  148. CString strValue = m_sRecvDestDir;
  149. l = regKey.Write_String_Value(REG_SRECVFLESDIR, strValue);
  150. if(!l)
  151. {
  152. TRACE0("Failed to write string key valuen");
  153. return ;
  154. }
  155. m_oAlarmsound.GetWindowText(strValue);
  156. l = regKey.Write_String_Value(REG_SALARMSOUND, strValue);
  157. if(!l)
  158. {
  159. TRACE0("Failed to write string key valuen");
  160. return ;
  161. }
  162. //////////////////////////////////////////////////////////////////////////
  163. //if auto run then write "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun" key.
  164. regKey.Close();
  165. if(!regKey.Open(HKEY_CURRENT_USER, REG_SSYSAUTORUN))
  166. {
  167. TRACE0("Failed to open the registry keyn");
  168. return ;
  169. }
  170. char lpKeyName[64], lpKeyVal[MAX_PATH];
  171. _snprintf(lpKeyName, sizeof(lpKeyName), "%s %s", SYS_APPANEM, SYS_VERSION_NO);
  172. if(m_bAutoRun)
  173. {
  174. ::GetModuleFileName(NULL, lpKeyVal, sizeof(lpKeyVal));
  175. regKey.Write_String_Value(lpKeyName, lpKeyVal);
  176. }
  177. else
  178. {
  179. regKey.DeleteValue(lpKeyName);
  180. }
  181. //////////////////////////////////////////////////////////////////////////
  182. CPropertyPage::OnOK();
  183. }
  184. void CConfigSysView::OnSelectDestDir()
  185. {
  186. CXShell shell;
  187. CString sPath;
  188. if(shell.GetFolder(&sPath, "Select Destination Directory", 
  189. this->GetSafeHwnd(), NULL, NULL))
  190. {
  191. this->m_sRecvDestDir = sPath;
  192. this->UpdateData(FALSE);
  193. }
  194. else
  195. {
  196. //MSGBOX_ERROR(_LoadString(IDS_OPENSHELLFLODERFAILED).GetBuffer(0));
  197. return ;
  198. }
  199. }
  200. void CConfigSysView::OnSelectSoundFile()
  201. {
  202. LPCTSTR lpszDefExt = _T(""),
  203. lpszFilter = _T("All Wav Files(*.wav)|*.wav||");
  204. CFileDialog dlg(TRUE, lpszDefExt, NULL, OFN_HIDEREADONLY | OFN_READONLY, lpszFilter);
  205. if(dlg.DoModal() == IDOK)
  206. {
  207. for (int i = this->m_oAlarmsound.GetCount()-1; i > -1; --i)
  208. {
  209. this->m_oAlarmsound.DeleteString(i);
  210. }
  211. this->m_oAlarmsound.AddString(ENV_DEFAULT_ALARMSOUND);
  212. CString sFileName = dlg.GetPathName();
  213. this->m_oAlarmsound.InsertString(
  214. this->m_oAlarmsound.GetCount(), sFileName);
  215. this->m_oAlarmsound.SetCurSel(this->m_oAlarmsound.GetCount()-1);
  216. }
  217. }
  218. BOOL CConfigSysView::OnInitDialog() 
  219. {
  220. CPropertyPage::OnInitDialog();
  221. if(!this->Refresh())
  222. {
  223. return FALSE;
  224. }
  225. return TRUE;  // return TRUE unless you set the focus to a control
  226.               // EXCEPTION: OCX Property Pages should return FALSE
  227. }