[英]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.