② 应用按钮的功能代码: void CAutoloadDlg::OnOK() { // TODO: Add extra validation here LPCTSTR title; UpdateData(TRUE); if(m_title.IsEmpty())//如果操作者没有填写要设置项的标题,程序显示对话框,提示操作者进行相关的填写。 { MessageBox(_T("Please input the title name")); return; } title=m_title; if(m_filename.IsEmpty())//如果操作者没有选择要设置的程序的全路径文//件名,程序显示对话框,提示操作者进行相关的选择。 { MessageBox(_T("Please input the programe file name")); return; } if(IsDlgButtonChecked(IDC_RADIO1))//如果操作者选择注册表方式,程序修改系统的注册表。 { HKEY hKey; LPCTSTR data_Set="SoftwareMicrosoftWindowsCurrentVersionRun";//设置注册表中相关的路径 Longret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WRITE,&hKey));//打开注册表中的相应项 if(ret0!=ERROR_SUCCESS) { MessageBox("错误0"); } int length=m_filename.GetLength()+1;//将控件中的内容进行转换,以达到注册表修改函数的参数调用需求。 for(int i=0;i){ if(m_filename[i]==92) length=length+1; } DWORD cbData=length; LPBYTE lpb=new BYTE[length]; int j=0; for(i=0;i{ if(m_filename[i]==92) { lpb[j]=92; j++; lpb[j]=92; j++; } else { lpb[j]=m_filename[i]; j++; } } lpb[j]=0; long ret1=(::RegSetValueEx(hKey,title,NULL,REG_SZ,lpb,cbData));//将相关的信息写入注册表。 if(ret1!=ERROR_SUCCESS)//判断系统的相关注册是否成功? { MessageBox("错误1"); } delete lpb; ::RegCloseKey(hKey);//关闭注册表中的相应的项 } if(IsDlgButtonChecked(IDC_RADIO2))//如果操作者选择用修改WIN.INI文件的方式 { LPCTSTR filename; filename=m_filename; WritePrivateProfileString(_T("windows"),_T("load"),filename,_T("c:windowswin.ini")); WritePrivateProfileString(_T("windows"),_T("run"),filename,_T("c:windowswin.ini")); } yzdlg.DoModal();//显示对话框,提示操作者是否需要重新启动计算机,以便验证程序的功能。 CDialog::OnOK(); }
③ 重新启动按钮的功能代码:
void yanzheng::OnOK() { OSVERSIONINFO OsVerInfo;//保存系统版本信息的数据结构 OsVerInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&OsVerInfo);//取得系统的版本信息 if(OsVerInfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) { ExitWindowsEx(EWX_REBOOT,0);//重新启动计算机 } CDialog::OnOK(); } 
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |