C语言实现程序开机自启动
2016-01-02 13:53
435 查看
程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN
#include<stdio.h> #include<windows.h> char *GetFilename(char *p) //得到一个路径的纯文件名 { int x=strlen(p); char ch='\\'; char *q=strrchr(p,ch); return q; } int main() { char *filepath; char modlepath[256]; char syspath[256]; //打开酷狗应用 filepath="C:\\Program^ Files\\KuGou\\KGMusic\\KuGou.exe"; system(filepath); //将程序移动到系统目录下 GetModuleFileName(0,modlepath,256); //获得自身路径 GetSystemDirectory(syspath,256); //得到系统路径 int ret=CopyFile(modlepath,strcat(syspath,GetFilename(modlepath)),1);//复制,CopyFile的第二个参数是目标文件名 if(ret) { printf("%s has been copyed to sys dir %s\n",modlepath,syspath); } else { printf("%s is exists",modlepath); } //程序添加开机自启动 char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run"; HKEY hKey; ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hKey); //打开注册表键 ret=RegSetValueEx(hKey,"MyProm",0,REG_EXPAND_SZ,(unsigned char*)strcat(syspath,GetFilename(modlepath)),25); //设置键值 if(ret==0) { printf("succes to write run key.\n"); RegCloseKey(hKey); } else { printf("failed to open regedit.%d\n",ret); return 0; } return 0; }
您可能感兴趣的文章:
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- access 数据库自启动困难解决方法
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置