VC编程:修改注册表实现开机自启动
4星 · 超过85%的资源 需积分: 50 115 浏览量
更新于2024-10-30
收藏 8KB TXT 举报
"修改注册表开机自启动(vc)通过编程实现"
在Windows操作系统中,程序可以通过修改注册表来实现在系统启动时自动运行。这个过程通常涉及到注册表的特定键值,特别是`HKEY_LOCAL_MACHINE`或`HKEY_CURRENT_USER`下的`Software\Microsoft\Windows\CurrentVersion\Run`子键。这些键值用于指定那些程序在用户登录或者系统启动时应该被执行。
在给定的代码中,可以看到一个用C语言编写的简单程序,它演示了如何利用VC++(Visual C++)环境来修改注册表并实现程序开机自启动。程序的主要步骤如下:
1. 定义注册表键名:`regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";` 这是目标注册表键的位置,用于存储启动项。
2. 打开注册表键:`RegOpenKey()` 函数被用来打开`HKEY_LOCAL_MACHINE`下的`regname`指定的键。`HKEY_LOCAL_MACHINE`表示系统级别的设置,影响所有用户。
3. 设置注册表值:`RegSetValueEx()` 函数用于在打开的键下创建一个新的值。在这里,创建了一个名为"54rk"的值(可能是程序的名称),类型为`REG_EXPAND_SZ`,值为`%systemroot%\\54rk.exe`,这表示程序的可执行文件路径。
4. 检查结果:如果`RegSetValueEx()`成功,程序会输出“succesto writerunkey”,并关闭注册表键;否则,会输出错误信息。
此外,代码还包含以下功能:
5. 获取当前模块文件路径:`GetModuleFileName(0, modlepath, 256);` 获取调用此函数的可执行文件(即当前程序)的完整路径。
6. 获取系统目录:`GetSystemDirectory(syspath, 256);` 获取系统的根目录。
7. 文件复制:`CopyFile(modlepath, strcat(syspath, "\\54rk.exe"), 1);` 将程序文件复制到系统目录,确保启动时可以从那里找到。
8. 检查复制结果:如果文件复制成功,程序会输出相应信息;否则,提示源文件已存在。
通过这种方式,程序不仅将自身添加到了开机启动列表,还将其副本保存在系统目录中,以确保在下次启动时能够找到并运行。
请注意,随意修改注册表可能对系统稳定性产生影响,因此在实际操作时应谨慎处理,尤其是对于非专业用户。在开发过程中,最好先在沙箱环境或测试机上进行此类操作,以免对生产环境造成不必要的风险。
2017-09-20 上传
2022-09-23 上传
2021-10-08 上传
138 浏览量
2014-06-27 上传
2008-07-11 上传
2009-07-30 上传
2022-09-15 上传
wantni
- 粉丝: 0
- 资源: 5
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程