惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
I
InfoQ
A
About on SuperTechFans
GbyAI
GbyAI
宝玉的分享
宝玉的分享
爱范儿
爱范儿
博客园 - 【当耐特】
博客园 - 司徒正美
博客园 - 聂微东
P
Proofpoint News Feed
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
B
Blog RSS Feed
Jina AI
Jina AI
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
博客园 - 叶小钗

博客园 - showonce

使用群晖的SynologyDrive同步本地文件到NAS时如何设置过滤某些文件夹的方法 群晖通过 acme.sh 申请 ZeroSSL 泛域名证书(适配 80 端口封锁)+ 自动续期同步完整步骤 关于投影机通过TCP网络控制开关机的一些设置 关于电脑按下开机按钮或重启按钮后,电脑没有进入到windows系统桌面,而是进入到蓝屏恢复界面的解决方法 申请个人版的SSL证书(免费的) 第一次接触json所需要的知识总结,用在C#中 Unity开发时,在visual studio编辑器中没有中文注释的解决办法 关于Unity的Android工程,写文件的问题 Unity关于引用.Net或其他C# dll的问题。(我是用的版本是2018.3) 群晖系统,为域名添加证书,以及怎么申请免费的证书 Unity插件DOTween中的中的Ease 首次在macbook使用unity开发遇到的一些列问题 关于使用云服务器做广域网通讯测试的资料整理 二进制、六进制、八进制、十进制、十六进制等之间的转换规则 Unity中使用PersistentDataPath加载文件 C#进制转换 在VS里编辑unity代码调用系统方法不显示中文注释或英文注释 打开本地【C】【D】【E】驱动器时候提示 X:\ 找不到应用程序 - showonce windows系统开机启动一个程序的方法-总结 vlc的几种播放状态
使用VS开发的一个开机自启动启动、可接收指定数据关闭电脑或...
showonce · 2020-08-25 · via 博客园 - showonce

使用VS开发的一个开机自启动启动、可接收指定数据关闭电脑或打开其他程序需要注意的几点

  1. 为了能够在其他电脑上运行自己写的程序,需要在VS改一下编译的运行库。(项目->属性->配置属性->C/C++->代码生成->运行库->多线程调试(/MTd))
  2. 其中用到了开机自启动,我用到了注册表的方法。
 1 //定义路径最大程度
 2 //定义写入的注册表路径
 3 #define SELFSTART_REGEDIT_PATH "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\"
 4 
 5 //设置本身开机自启动 参数为true表示设置自启,为false 表示取消
 6  //获取程序完整路径
 7     char pName[MAX_PATH] = { 0 };
 8     GetModuleFileNameA(NULL, pName, MAX_PATH);
 9     //在注册表中写入启动信息
10     HKEY hKey = NULL;
11     LONG lRet = NULL;
12     if (bKey)
13     {
14         //打开注册表
15         lRet = RegOpenKeyExA(HKEY_CURRENT_USER, SELFSTART_REGEDIT_PATH, 0, KEY_ALL_ACCESS, &hKey);
16         //判断是否成功
17         if (lRet != ERROR_SUCCESS)
18         {
19             return;
20         }
21         else
22         {
23 
24             //写入注册表,名为testProtect,可以自己修改
25             RegSetValueExA(hKey, "My_Shutdown", 0, REG_SZ, (const unsigned char*)pName, strlen(pName) + sizeof(char));
26             cout << "注册成功!" << endl;
27             //关闭注册表
28             RegCloseKey(hKey);
29             return;
30         }
31     }
32     else
33     {
34         lRet = RegOpenKeyExA(HKEY_CURRENT_USER, SELFSTART_REGEDIT_PATH, 0, KEY_ALL_ACCESS, &hKey);
35         //判断是否成功
36         if (lRet != ERROR_SUCCESS)
37         {
38             return;
39         }
40         else
41         {
42 
43             //删除名为testProtect的注册表信息
44             RegDeleteValueA(hKey, "My_Shutdown");
45 
46             //关闭注册表
47             RegCloseKey(hKey);
48             return;
49         }
50     }

  3. 我写的是一个控制台程序,而且并不需要一个窗口,所以我是用了一个宏:#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )