2012-01-14 32 views
1

我正在創建一些使MS Word中的任務變得輕鬆的小應用程序。應用程序必須以Word形式導入爲宏,這意味着必須將其存儲在某個模板文件夾下,該文件夾位於用戶的下面。所以我不想知道如何知道用戶名稱是什麼,什麼是版本的windows,導致我的用戶名和文件夾位置與其他人不一樣。 有沒有什麼小蝙蝠代碼或者C++中的一些函數,可以輕鬆將這兩個信息存儲在變量中,以便在安裝應用程序時可以輕鬆使用它?以編程方式在C++中查找用戶名?

操作系統:WIN7,VISTA,XP

+0

它比C++具體問題更操作系統的具體問題。在Posix系統上,特別是Linux,'getuid(2)'和'uname(2)'系統調用很有用,'getpwuid'函數可以從uid中檢索名字。你也可以使用'getenv(「USER」)'。請注意,C++標準不知道用戶是什麼。 – 2012-01-14 16:03:03

回答

5

獲取用戶名使用GetUserName()功能。

但是,這不是確定當前用戶的文件夾位置的最佳方法。對於使用類似SHGetSpecialFolderPath()SHGetFolderPath()代替,可以給一個特殊的文件夾的路徑(如用戶的應用程序文件夾,桌面等)

4

你可以通過調用SHGetFolderPath(CSIDL_PROFILE)(Win2K系統及更高版本)獲取用戶的配置文件目錄或SHGetKnownFolderPath(FOLDERID_Profile)(Vista及更高版本)。

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

我想,一旦你有模板文件夾,你不需要用戶名或操作系統版本。

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); 
相關問題