我有一些问题,让以下简单的代码正确运行:
#include int main( void ) { system("foo.reg"); //why does this NOT WORK?! //system("reg import foo.reg"); //why does this NOT WORK?! //system("regedit "foo.reg""); //why does this NOT WORK?! return 0; }
注册表文件位于已编译的可执行文件所在的目录中。 当我从命令行运行它时, foo.reg运行成功,但运行上面的程序只显示regedit确认窗口,并且在注册表本身没有相应的更改。
我使用Dev-C ++编写程序,我运行的是Windows XP x64 SP2。 任何帮助将不胜感激。
system("regedit /s foo.reg");
应该静默导入它而不需要任何确认对话框。 有关regedit.exe的命令行选项, 请参阅此处 。 但是,我会对有问题的注册表文件(foo.reg)持怀疑态度; 检查一下是否正确。 在运行之后,请确保您是否在注册表中foo.reg
要修改的正确路径。
另外,C标准库的system()
函数在stdlib.h
声明,因此它应该是:
#include int main() { system("regedit /s foo.reg"); return 0; }
编辑:
我认为import已经成功; 既然你已经提到它是一台64位的XP机器,我认为这个改变将属于Wow6432Node
。 例如HKEY_LOCAL_MACHINESOFTWAREWow6432Node
或HKEY_CURRENT_USERSOFTWAREWow6432Node
。 所以也请检查Wow6432Node
。 有关此内容的详细信息, 请参阅此文章和MSDN 。
以上就是c/c++开发分享使用C ++导入注册表文件相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/519165.html