C++注册开机自启动服务代码

这篇博客介绍了C++中利用注册表实现开机自启动服务的代码,通过`RegOpenKeyEx`函数写入启动项。在遇到函数返回2的错误时,作者发现问题是由于使用了`TCHAR`和`RegOpenKeyExA`导致的,而正确的方法应使用`RegOpenKeyExW`以处理Unicode字符。通过更正这一错误,问题得到了解决。
摘要由CSDN通过智能技术生成

// autoreg.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <Windows.h>
#include <winreg.h>
//#include <afxwin.h>

int _tmain(int argc, _TCHAR* argv[])
{
 //写入注册表,开机自启动
 HKEY hKey;
 //找到系统的启动项
 //注意把项目支持的字符集改成支持多字符集
 //选中解决方案管理器中的项目,右键->属性->配置属性->常规,在右面字符集一栏单击一下字符集编辑输入区域,在下拉框中选择“使用多字节字符集”即可
 LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
 //打开启动项Key
 long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
 if(lRet == ERROR_SUCCESS)
 {
  char pFileName[MAX_PATH] = {0};
  //得到程序自身的全路径
  DWORD dwRet = GetModuleFileName(NULL,  pFileName, MAX_PATH);
  //添加一个子Key,并设置值
  // 下面的"getip"是应用程序名字(不加后缀.exe)
  lRet = RegSetValueEx(hKey,  "autoreg", 0, REG_SZ, (BYTE *)pFil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值