以编程方式在c ++中查找用户名?

时间:2012-01-14 15:56:52

标签: c++ windows ms-word

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

OS:win7,vista,xp

3 个答案:

答案 0 :(得分:5)

要获取用户名,请使用GetUserName()功能。

但是,这不是确定当前用户文件夹位置的最佳方法。对于那些使用类似SHGetSpecialFolderPath()SHGetFolderPath()的内容,它可以提供特殊文件夹的路径(例如用户的应用程序文件夹,桌面等)

答案 1 :(得分:4)

您可以通过调用SHGetFolderPath(CSIDL_PROFILE)(Win2K及更高版本)或SHGetKnownFolderPath(FOLDERID_Profile)(Vista及更高版本)来获取用户的个人资料目录。

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

我想,一旦你有了模板文件夹,就不需要用户名或操作系统版本了。

答案 2 :(得分:0)

使用此:

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);