Made me dig deep for this routine, Had to go all the way back to my FoxPlus Library to dust this one off, There maybe a more eliquent way of doing it now but this still works. After you get the user name by API or Sys(0) here is a routine that returns initials.
[tt]
*/***************************************************************************
*/Program : function INITIALS
*/System :
*/Purpose : Returns The First Letter Of Every Word In A String
*/Syntax : =Initials(Str)
*/Returns : String
*/Parameter : String - Str - The String to be used
*/Defaults : None
*/Requires : None
*/Changes : Nothing
*/Internal Calls : None
*/External Calls : None
*/Calls :
*/Version : 1.0
*/Dated : 12/04/1987
*/Written By: David W. Grewe
*/***************************************************************************
*& String Function
*/***************************************************************************
*/ Record Of Change
*/
*/***************************************************************************
parameter pcString
private lnSpot , lnLen
*
* If the String has a Comma in it, Move Front part to the back
*
if at(",",pcString) > 0
pcString = substr(pcString , at("," , pcString) + 1) + " " + substr(pcString , 1 , at("," , pcString)-1)
endif
*
* Change anything not a letter to a space
*
pcString = alltrim(upper(pcString))
lnLen = len(pcString)
for lnSpot = 2 to lnLen
if isalpha(substr(pcString , lnSpot , 1)) = .f.
pcString = stuff(pcString , lnSpot , 1 , " "

endif
endfor
*
pcString = alltrim(pcString)
lcInitials = ""
*
* get first letter after a space
*
lcInitials = substr(pcString , 1 , 1)
do while at(" " , pcString) > 0
pcString = alltrim(substr(pcString , at(" " , pcString) + 1))
lcInitials = lcInitials + substr(pcString , 1 , 1)
enddo
release lnSpot , lnLen
return lcInitials
[/tt]
David W. Grewe
Dave@internationalbid.com
ICQ VFP ActiveList #46145644