如何在C++中獲得進程所有者(正在執行我的程序的用戶)的用戶名?如何獲取執行我的程序的用戶名?
回答
的Windows
例子:
char user_name[UNLEN+1];
DWORD user_name_size = sizeof(user_name);
if (GetUserName(user_name, &user_name_size))
cout << "Your user name is: " << user_name << endl;
else
/* Handle error */
的Linux
看getpwuid:
getpwuid()函數將搜索 用戶數據庫中的匹配uid的 條目。
的getpwuid()函數應在 返回指向一個struct passwd文件
的struct passwd
將包含char *pw_name
。使用getuid
獲得用戶ID。
這是特定於操作系統。在Windows上,使用GetUserName。在unix上,使用getuid。
的問題是關於本地用戶名,而不是計算機名稱。 – 2010-02-03 02:33:47
這是機器名稱不是本地用戶/登錄用戶。 – BobbyShaftoe 2010-02-03 02:34:50
原來的問題並不清楚。我已經解決了我的答案。 – 2010-02-03 02:36:59
這不是一個C++相關的問題。使用UNIX系統時,可以在環境變量中找到信息(不是100%確定的)。您也可以在這些系統上使用'id'程序。
通常,最快的方法是進行平臺相關的內核/ API調用。
在cmd.exe的下窗口USERNAME環境變量中保存的用戶名(這也是不信息事實)。在WINAPI文檔中搜索精確。
@Notinlist用戶名:你是什麼意思它不是一個C++相關的問題?他使用C++。這使得C++相關的問題。也許你來自「C++相關」僅指標準C++的地方(如#[email protected]。淨),但在這裏,這是非常在主題:) – 2010-02-03 16:43:34
供將來參考,在所有系統(包括窗口),你可以鍵入:'whoami'獲得當前用戶名。 – chacham15 2012-03-03 01:48:50
在windows上,一個線程可以被模擬,一個進程不能。爲了得到過程老闆你應該叫GetTokenInformation與您的進程令牌的TokenUser infoclass,這會給你一個SID,這個SID可以轉換爲一個用戶名與LookupAccountSid。如果你不關心線程vs進程,GetUserName()很好。
在Mac OSX:
getenv("USER");
在Linux上:
getenv("USERNAME");
- 1. 如何獲取我的應用程序的執行狀態?
- 2. C++:獲取執行我的應用程序的進程的名稱
- 3. 如何獲取運行我的Web應用程序的用戶的Windows登錄用戶名?
- 4. 在Java5中,如何獲取運行應用程序的用戶的全名?
- 5. 使用WMI:如何獲取運行我的程序的用戶帳戶的名稱?
- 6. 從MonoTouch中引用的DLL獲取執行程序集名稱?
- 7. 如何從我的應用程序獲取用戶名和密碼?
- 8. 如何獲取在Windows上卸載應用程序的用戶的用戶名?
- 9. 我如何獲取用戶名?
- 10. 如何從我的應用程序獲取Facebook用戶ID?
- 11. 我的WinForms應用程序如何獲取用戶MachineID或ProcessorID?
- 12. 獲取運行執行AppPool的用戶名
- 13. 如何在執行中獲取執行代碼的文件名?
- 14. 在ShareKit中,我如何獲取用戶的Facebook用戶名?
- 15. 如何從我的kivy應用程序(Pyinstaller)獲取Windows可執行文件?
- 16. 如何獲取用戶名?
- 17. 如何獲取後臺運行應用程序的名稱
- 18. 如何在OOB應用程序中獲取用戶名?
- 19. 獲取執行Web應用程序的程序集版本
- 20. 我如何獲得由exec執行的程序的返回值?
- 21. 如何獲取用戶登錄到我的應用程序的機器帳戶?
- 22. NSIS - 如何獲取安裝程序可執行文件的文件名?
- 23. 從用戶輸入獲取shell命令並執行C程序
- 24. WiseScript:獲取用戶執行一個正在運行的進程
- 25. 我如何獲得我的應用程序的所有用戶
- 26. 如何在我的程序中獲取域名的whois信息?
- 27. 如何獲取電腦的用戶名?
- 28. 如何獲取Firebase用戶的名字
- 29. 如何獲取Makefile中的用戶名?
- 30. 如何獲取Java程序的可執行文件?
如果你想硬編碼的緩衝區大小,使用257(UNLEN + 1),這是最大文件大小在Windows – Anders 2010-02-03 13:46:58