Microsoft KB Archive/139625

= How to use and call the GetUserName API from Visual FoxPro =

Article ID: 139625

Article Last Modified on 2/12/2007

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition
 * Microsoft Visual FoxPro 5.0 Standard Edition
 * Microsoft Visual FoxPro 6.0 Professional Edition
 * Microsoft Visual FoxPro 7.0 Professional Edition
 * Microsoft Visual FoxPro 8.0 Professional Edition
 * Microsoft Visual FoxPro 9.0 Professional Edition

-



This article was previously published under Q139625



SUMMARY
Windows NT and Windows 95 may require that users log on to a computer or a network. On occasion, you may want to use the login user id for your application. By using the GetUserName API call, you can discover the name of the user who is currently logged on to the system. This article shows by example how to use and call the Win32 GetUserName API.



MORE INFORMATION
Having the user id of the currently logged in user can be helpful in multiuser programming for situations such as updating a table field with the user id of a user who has a record locked.

The GetUserName API call is specific to Windows 95 and Windows NT 4.0 and later Windows operating systems.

The return value held in the variable lpUserIDBuffer is null terminated, so to get just the user ID, the following sample code trims the actual return value by using the LEFT, LEN, and ALLTRIM functions.

Sample code
****  ** Program: Getuser.prg                                   ** ** Purpose: Demonstrates how to use and call the Win32   ** ** GetUserName API. **  ****   PUBLIC  lpUserIDBuffer, ; nBufferSize, ; RetVal

RetVal        = 0 lpUserIDBuffer = SPACE(25) && Return buffer for user ID string nBufferSize   = 25        && Size of user ID return buffer

DECLARE INTEGER GetUserName IN Win32API AS GetName ; STRING @lpUserIDBuffer, ; INTEGER @nBufferSize

RetVal=GetName(@lpUserIDBuffer, @nBufferSize)

DEFINE WINDOW ShowInfo FROM 0,0 TO 5,70 ; FLOAT CLOSE ; TITLES "User ID Information" ; FONT "Courier",10

ACTIVATE WINDOW ShowInfo MOVE WINDOW ShowInfo CENTER

@ 0,1 SAY "User ID : " + ; LEFT(lpUserIDBuffer,nbuffersize-1)

General information
For additional information about an alternative to this method that will work on any of the platforms, including Windows 3.1 and Windows for Workgroups, click the following article number to view the article in the Microsoft Knowledge Base:

99921 How to obtain network user IDs from within FoxPro

