网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
利用VC++编程实现程序自动启动
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
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="Software\\Microsoft\\Windows\\CurrentVersion\\Run";//设置注册表中相关的路径

  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:\\windows\\win.ini"));

  WritePrivateProfileString(_T("windows"),_T("run"),filename,_T("c:\\windows\\win.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();

  }

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号