社区
C++ 语言
帖子详情
程序开机启动的问题
sk19891117
2009-07-13 04:47:24
就是本人做了个小东西 让它开机启动 写入注册表的Software\\Microsoft\\Windows\\CurrentVersion\\Run里面 开机后确实是启动了 但是读不到配置文件了 看了 一下注册表里的路径没错 手动点击启动时可以读到配置文件 想问下各位大侠到底这是什么原因呢。。。。。多谢了
...全文
44
21
打赏
收藏
程序开机启动的问题
就是本人做了个小东西 让它开机启动 写入注册表的Software\\Microsoft\\Windows\\CurrentVersion\\Run里面 开机后确实是启动了 但是读不到配置文件了 看了 一下注册表里的路径没错 手动点击启动时可以读到配置文件 想问下各位大侠到底这是什么原因呢。。。。。多谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sk19891117
2009-07-14
打赏
举报
回复
恩 我把那个配置文件的路径改了就好了 呵呵幸苦各位了啊
doudouHuY
2009-07-13
打赏
举报
回复
应该是你程序被调用时当前目录不是你程序可执行文件所在的目录。
用GetModuleFileName
老邓
2009-07-13
打赏
举报
回复
[Quote=引用 10 楼 The_facE 的回复:]
不要用GetCurrentDirectory那个函数,这个函数很有问题。
用GetModuleFileName,然后再把.exe文件名截掉。
[/Quote]
嗯
hearoequal
2009-07-13
打赏
举报
回复
GetCurrentDirectory得到的路径是个共享的系统参数
比如说你这个程序有个GetCurrentDirectory函数
但是还没执行到这个函数
但是其他的一个程序运行了(注意 只是运行都有可能)
你通过GetCurrentDirectory获得的路径就已经不是你程序所在的目录了
sk19891117
2009-07-13
打赏
举报
回复
要下线了 我回去都试一下啊 谢谢各位了
sk19891117
2009-07-13
打赏
举报
回复
这样写的话 那配置文件还用写进去么?
hearoequal
2009-07-13
打赏
举报
回复
GetModuleFileName( NULL, buf, sizeof( buf ) ); //取进程 的绝对路径 包括程序全称 如: C:\\TEST\MAIN.EXE
PathRemoveFileSpec(buf); //去掉最后面的 程序名字
include那个是第2个函数调用需要加的
sk19891117
2009-07-13
打赏
举报
回复
#include <shlwapi.h>
#pragma comment (lib,"shlwapi.lib")
这是干嘛啊
hearoequal
2009-07-13
打赏
举报
回复
对了前面是
#include <shlwapi.h>
#pragma comment (lib,"shlwapi.lib")
sk19891117
2009-07-13
打赏
举报
回复
不把后缀写进去?
hearoequal
2009-07-13
打赏
举报
回复
如果是使用GetCurrentDirectory的当前路径问题
用
GetModuleFileName( NULL, buf, sizeof( buf ) );
PathRemoveFileSpec(buf);
替换试试
这个是取进程绝对路径
The_facE
2009-07-13
打赏
举报
回复
不要用GetCurrentDirectory那个函数,这个函数很有问题。
用GetModuleFileName,然后再把.exe文件名截掉。
sk19891117
2009-07-13
打赏
举报
回复
首先是用的相对路劲啊 后来又改为
char CurrentPath[MAX_PATH];
long ret;
LPSTR FileNewName;
LPSTR FileCurrentName;
DWORD type=REG_SZ;
DWORD size=MAX_PATH;
GetCurrentDirectory(MAX_PATH,CurrentPath);
FileCurrentName = lstrcat(CurrentPath,"\\sk.ini"); 这样了 还是不行 可能是七楼说的那种情况吧
The_facE
2009-07-13
打赏
举报
回复
你在程序里是怎么找到配置文件的?用了GetCurrentDirectory函数吗?
如果是,那么把这个函数换掉。
xiazaizhezhanghao
2009-07-13
打赏
举报
回复
这个是这样的 你的程序路径写到注册表中后 它会把你的程序靠到另外一个目录中再调用你的程序 所以你需要把配置文件也写进去才行
sk19891117
2009-07-13
打赏
举报
回复
呵呵 好像还是不行哦
sk19891117
2009-07-13
打赏
举报
回复
哦 你的意思是这样的吧 就是在我读配置文件的时候就是那样读 而不是用相对路径读是吧
等下回去试一下看能行不
sk19891117
2009-07-13
打赏
举报
回复
也要把配置文件写到注册表中么? 是不是也是写到Software\\Microsoft\\Windows\\CurrentVersion\\Run里面?
大前置
2009-07-13
打赏
举报
回复
这只是你程序的路径,不是配置文件的路径
TCHAR buf[256];
memset(buf, 0, sizeof(buf));
GetCurrentDirectory(256, buf);
buf是程序目录,再加上你的配置文件名,作为配置文件绝对路径就可以了
sk19891117
2009-07-13
打赏
举报
回复
起始目录不一样?? 可我看了注册表啊 是绝对路径 那如果要是目录不一样 怎么解决呢
加载更多回复(1)
Windows设置自己的
程序
开机
自动
启动
Windows系统想要快速设置
开机
自动
启动
某个
程序
,可以使用以下几种方法设置: 第一种:设置
启动
项 1.找到
启动
文件夹,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start ...2.拷贝需要
开机
启动
的程...
Android实现
程序
开机
自
启动
可以通过Android系统中的广播机制实现
开机
自
启动
...需要
开机
自
启动
的
程序
接收这个广播,然后
启动
自己的活动即可。如图1所示。图1
程序
自
启动
原理2自定义广播接收器在需要自
启动
的
程序
中,需要创建广播接收器来接收广...
Linux 设置
程序
开机
自动
启动
将
程序
设置为
开机
启动
的方法不止一种,这里记录的,应该是最常用的一种。 root用户执行命令:ll /etc/rc.d/ 可以看到有下面这些文件: [centos@ip-172-31-42-26 init.d]$ ll /etc/rc.d/ 总用量 16K drwxr-xr...
C# 将
程序
添加
开机
启动
的三种方式
前言最近在研究
程序
随系统
启动
,发现在 win7 上因为权限的
问题
,写注册表的时候总是会出现
问题
,...一、开始菜单
启动
在很久以前,刚开始捯饬电脑的时候,就知道的一个
开机
启动
的方法,那时候就是直接把
程序
的快捷方...
Win10怎么添加
开机
启动
项?Win10添加
开机
自动运行软件三种方法
如晨软件或
程序
没有
开机
启动
设置的话,是的,在Win10中添加
开机
启动
项虽然麻烦了些,但是还是可以设置的,下面小编就分享几种方法。方法一:
开机
启动
文件夹 1、我们打开文件夹:C:\Users(用户)\Administ...
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章