簡體   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