获取我的文档路径的方法之一是读取注册表里的值:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal但是我用普通账户来登录系统,但是用管理员权限运行程序的话,读取上面的注册表值是管理员账号的我的文档路径,
而不是当前账号的我的文档路径。请问:有没有方法使用普通账户登录,然后用管理员权限运行程序,获取的是仍然是当前使用账户的我的文档路径呢?windowsvc我的文档路径
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal但是我用普通账户来登录系统,但是用管理员权限运行程序的话,读取上面的注册表值是管理员账号的我的文档路径,
而不是当前账号的我的文档路径。请问:有没有方法使用普通账户登录,然后用管理员权限运行程序,获取的是仍然是当前使用账户的我的文档路径呢?windowsvc我的文档路径
SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, szPath);
GetEnvironmentVariable(L"UserProfile", buf, sizeof(buf)/ sizeof(TCHAR));
CString strPath = buf;
strPath += L"\\My Documents";
应该是:
TCHAR szPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, szPath);
不过我试了,用右键用管理员权限运行,获取的是管理员账户的路径,不是当前登录用户的路径。
获取公共文档的路径:
TCHAR szPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_COMMON_DOCUMENTS, NULL, SHGFP_TYPE_CURRENT, szPath);但是我又发现貌似有两个地方可以存放?
CSIDL_COMMON_DOCUMENTS 公共文档
CSIDL_COMMON_APPDATA 程序数据这两个看名字一个是放文档,一个是放程序数据?不知哪个用起来更没有权限问题呢?