作者StarTouching (抚星)
看板C_Sharp
标题[问题] winform如何取得帐号名字?
时间Sun Sep 8 21:47:31 2013
我试过 WindowsIdentity
Environment
SystemInformation
显示的都是「背後」的实际名称 不是我更改过的名称
为什麽会这样 且听一小段与程式无关的故事。
我的windows状况比较特别
当初拿到笔电时windows就已经灌好 使用者名称不是我要的 (他取名user)
我就问销售员 他回答到控制台改就好。
後来我改了自己的帐号後(取名Star) 发现资料夹名称没变 还是 c:\users\user
这让我在心里不太舒服 很想改 却发现改起来很麻烦
就想说反正用起来没问题 就作罢。
直到今天 我程式想抓取帐号名称 google到的方法都只能抓到 user, 抓不到Star
可是我发现伤心小栈却抓得到Star
所以就想上来问问看怎麽做。
贪心一点的想法 当然是两个问题的答案都知道最好。
不过既然在程式版 我想重点就摆在伤心小栈到底如何取得我「表面」的帐户名称的吧
敢请前辈赐教了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.171.199.141
=========== 找到答案了分隔线 ==========
(以下以VC++语法表示 请自行转为c#语法)
本文提的三种方法都会取得实际目录的username
要改用
UserPrincipal::Current->DisplayName
命名空间在 System::DirectoryServices::AccountManagement
系统至少要支援 .NET 3.5 (所以XP我不确定)
Visual Studio版本确定2008可以
不过2008必须在专案把System.DirectoryServices.AccountManagement.dll加入参考
PS. 此API速度比其他三者慢一点, 但相对能正确抓出使用者名称
Ref:
http://www.codeproject.com/Articles/42282/Get-a-User-s-Full-Name
※ 编辑: StarTouching 来自: 1.171.197.30 (09/09 14:02)
1F:推 DeathTemp:有答案不得不推 09/09 14:57