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

我正在创build一个小应用程序,这使得在MS Word中轻松完成一些任务 应用程序必须以Wordforms导入为macros,这意味着必须将其存储在用户正在使用的某个模板文件夹中。 所以我不想知道如何知道用户的名字是什么,什么是Windows的版本 ,导致我的用户名和文件夹的位置不同于其他人。 有没有什么小蝙蝠的代码,或者一些在C ++中的函数,可以很容易地把这两个信息存储在variables,我可以很容易地在安装应用程序时使用它?

操作系统:win7,vista,xp

Solutions Collecting From Web of "以编程方式在c ++中查找用户名?"

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

但是,这不是确定当前用户的文件夹位置的最佳方法。 对于SHGetSpecialFolderPath()或SHGetFolderPath()来说 ,可以使用特殊文件夹的路径(例如用户的应用程序文件夹,桌面等)

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

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

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

用这个 :

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