獲取網絡上的用戶名

字號:

某本地設備通過某種方式與網絡連接。通過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機)上,運行以上兩個方案都將返回正在使用本機的用戶名。