繁体   English   中英

以编程方式在C ++中找到用户名?

[英]Programmatically find username in c++?

我正在创建小的应用程序,可以简化MS Word中的某些任务。 应用程序必须作为宏导入到Word中,这意味着必须将其存储在用户下的某个模板文件夹中。 所以我不会找出如何知道用户名和Windows版本的原因,因为我的用户名和文件夹位置与其他人不同。 有没有什么蝙蝠代码,或者c ++中的某些函数可以轻松地将这两个信息存储在变量中,以便我在安装应用程序时可以轻松使用它?

操作系统:Win7,Vista,XP

要获取用户名,请使用GetUserName()函数。

但是,这不是确定当前用户的文件夹位置的最佳方法。 为此,请使用诸如SHGetSpecialFolderPath()SHGetFolderPath()之类的东西,它们可以提供特殊文件夹的路径(例如用户的应用程序文件夹,其桌面等)。

您可以通过调用SHGetFolderPath(CSIDL_PROFILE) (Win2K和更高版本)或SHGetKnownFolderPath(FOLDERID_Profile) (Vista和更高版本)来获取用户的配置文件目录。

您可以使用SHGetFolderPath(CSIDL_TEMPLATES) (Win2K和更高版本)或SHGetKnownFolderPath(FOLDERID_Templates) (Vista和更高版本)获得指向模板文件夹的直接路径。

我猜想,一旦有了template文件夹,就不需要用户名或OS版本了。

用这个 :

void UserName(string *x){
char username[UNLEN + 1];
DWORD size = UNLEN + 1;
GetUserName(username, &size);
string transition(username);
*x=transition;}
//use this syntax in main : string username;UserName(&username);

暂无
暂无

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

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