获取网络上的用户名


某本地设备通过某种方式与网络连接。通过FoxPro程序获取本地用户登陆网络时使用的用户名。这时候本地设备与网络之间的连接必须是存在的。

方案1:利用WNetGetUser函数
DECLARE INTEGER WNetGetUser IN Win32API STRING lpName, STRING @lpUserName,INTEGER @lpnLength
szUserName = SPACE(80)
dwResult = 0
cchBuff = 80
dwResult = WNetGetUser("", @szUserName, @cchBuff)
?substr(szUsername,1,atc(chr(0),szUsername)-1)
?cchBuff

方案2:利用SYS(0)函数
IF allt(substr(sys(0),rat("#",sys(0))+2)) > "1" and
!empty(allt(substr(sys(0),rat("#",sys(0))+2)))
gcUserName = allt(substr(sys(0),rat("#",sys(0))+2))
ELSE
gcUserName = "NotConnected"
ENDIF

事实上,在某些内置了网络功能的PC机(如运行Windows 98的PC机)上,运行以上两个方案都将返回正在使用本机的用户名。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus