繁体   English   中英

Windows在登录时自动启动时的C ++文件权限

[英]C++ file permissions when automatically started by Windows on login

问题:重新启动后,我的C ++程序无法写入文件,因为它被拒绝访问。

该程序将添加到注册表的以下位置,从而在启动过程中启用该程序:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

代码中的以下快照程序类似于引起问题的快照程序:

ofstream myfile;
myfile.open ("example.txt", ios:app);
myfile << "Writing this to a file.\n";
myfile.close();

由于此代码段在循环中运行,因此文件会反复打开和关闭,但是重新启动计算机后,该程序似乎失去了对该文件的文件权限,.open表示该文件出现Acess Denied错误。

这里有什么问题? 由我在没有管理员权限的情况下启动该程序,但Windows却未启动该程序,它将如何运行?

据我了解,问题不在C ++库中,而是在Windows运行它时您的应用程序所拥有的权限中。 因此,请尝试以下操作:

1)为您的exe文件创建快捷方式;

2)在HKEY_CURRENT_USER\\...\\Run中将应用程序的名称从*.exe更改为*.lnk (仅在快捷方式的帮助下运行应用程序);

3)在“高级安全设置”部分的快捷方式属性中,将“所有者”更改为“系统”。

也许这会有所帮助。

"example.txt"相对于您的工作目录,启动时运行时可能有所不同。 添加一个硬编码路径以检验该假设。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM