>Ed,
>
>Here is the function as I've tried to use it. Calling it with
>GetUser("C:")
>GetUser("V:") (mapped drive)
>GetUser("æøå") (garbage)
>all returns my username...
>
>
>* FUNCTION GetUser
>
LPARAMETERS ltcResource
>LOCAL lcResource, lcUserId, lnLen
>
>IF TYPE("ltcResource") = "C"
> lcResource = ltcResource
>ELSE
> lcResource = ""
>ENDIF
>lcUserId = SPACE(255)
>lnLen = 255
>
>* Use the WNetGetUser function in the Win32API to get the user id
>DECLARE INTEGER WNetGetUser IN WIN32API String @, String @, Integer @
>IF WNetGetUser(lcResource + CHR(0), @lcUserId, @lnLen) = 0
> lcUserId = UPPER(LEFT(lcUserId, AT(CHR(0), lcUserId) - 1))
>ELSE
> lcUserId = ""
>ENDIF
>
>RETURN ALLTRIM(lcUserId)
>
>
What operating system are you using, and what userid was used to attach the networked resource? I did see that Win98 returned my domain ID for anything other than null, which returned my local Windows login; NT seems to behave as per the documentation in the MSDN, but Win9x is not behaving as expected it seems.
If you're running in a peer-to-peer environment, I'd say that your results were correct, since you'd have share-level access rather than user-level access enabled, which means that your userid for all connections is the same. Why local and non-existent connections are returning any value without an error doesn't make sense.