>
>FUNCTION SYSGetUserName
>LOCAL lcUserName, lnBufSize, RetCode, NullCharPos
>
> lcUserName = REPLICATE(CHR(32), 80)
> lnBufSize = 80
>
> *---call WINAPI
> Declare Integer GetUserName IN WIN32API String @lpBuffer, Integer nSize
> RetCode = GetUserName(@lcUserName, lnBufSize)
> CLEAR DLLS
>
> *---search for the end of the string
> NullCharPos = AT(CHR(0), lcUserName)
> IF NullCharPos > 0 THEN
> lcUserName = LEFT(lcUserName, NullCharPos - 1)
> ELSE
> lcUserName = ""
> ENDIF
>
> RETURN lcUserName
>
>ENDFUNC
>
>>
>>Try adding the @ sign infront of lcUserName in the call to GetUserName, so it is called "By Reference".
>>
>>Btw. There is a command for everything and I'm still finding new stuff every week. Instead of
REPLICATE(CHR(32), 80), you could do a
SPACE(80)>>
>>Hope that helped,
>
>Thanks for the quick answer!
>
>I tried that (adding the @) but it didn't work (same error message.) Plus, I knew about the SPACE function but prefered using REPLICATE because, at the beginning, I was filling the string with null characters (chr(0)).
>
>What next?
>
>Stephane.
I got it work on my PC by adding '@' in front of nSize
Declare Integer GetUserName IN WIN32API String @lpBuffer, Integer @nSize
--sb--