我有一个将数据(original.dat)存储到文件夹C:\ ProgramData的应用程序 (我使用SHIDetFolderPath()和CSIDL的CSIDL_COMMON_APPDATA。来访问该文件夹)
还需要使用参数调用命令行执行文件(myexecute.exe) c:\ program files \ myname \ appname \ myexecute.exe original.dat outputfile.dat(outputfile.dat将在C:\ ProgramData中) 它适用于xp,但它在vista上报告错误“访问被拒绝”。 它看起来好像是在文件夹中创建outputfile.dat。
欢迎任何评论
由于
果渣
答案 0 :(得分:7)
CSIDL_COMMON_APPDATA适用于所有用户,并且由于UAC而无法为非管理员用户写入。在安装过程中,它对管理员来说是可写的,但不应该在之后使用。
您应该使用CSIDL_APPDATA代替当前用户的数据。