![]() |
Using the Windows API to extract the Windows User Name
Hi,
I found this information on another website: (I am trying to use the Windows API to extract the login information of the user who has a workbook open for editing. Just a thought: if this is your workbook (or at least you have control over it)and you want to know who is opening it, you could write code in the Workbook_Open event which captures the user's userID, name, etc (using Windows APIs) and persist these values somewhere visible to you. An extension to this idea is to get the workbook to regularly poll (using the OnTime method) a database, text file on the network, etc where you can set a value to tell the workbook to close, effectively throwing out the current user so that you can open the workbook. -- "PS" wrote in message ... Hello, In a Network Computer, an Excel file is opened by someone (eg. PS) When I open the Excel file, this message dialog is prompted aaa.xls is locked for editing by 'PS' Open ..... ...... ....... ..... ..... ...... ...... in use. My Question is "Is there any way to extract 'PS' ?" Maybe API ? Thanks in advance. This is my question. How do I use the Windows API to extract the Windows login information (username) to use in the Workbook_Open event of who has the Excel workbook open for editing. Any help would be greatly appreciated Thanks, Mike |
Using the Windows API to extract the Windows User Name
Cut and paste this code into a module. The function returns the User name of
the person logged into the computer. Option Explicit '----------------------------------------------------------------------------------------------------- ' This module only provides the username '================================================= ================================================== == Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Public Function ReturnNTUserName() As String ' Returns the NT Domain User Name Dim rString As String * 255, sLen As Long, tString As String Dim NWUserName As String tString = "" On Error Resume Next sLen = GetUserName(rString, 255) sLen = InStr(1, rString, Chr(0)) If sLen 0 Then tString = Left(rString, sLen - 1) Else tString = rString End If On Error GoTo 0 NWUserName = Left(Right(tString, Len(tString) - 1), Len(tString) - 2) ReturnNTUserName = UCase(Left(tString, 1)) + NWUserName + Right(UCase(tString), 1) End Function "Mike" wrote: Hi, I found this information on another website: (I am trying to use the Windows API to extract the login information of the user who has a workbook open for editing. Just a thought: if this is your workbook (or at least you have control over it)and you want to know who is opening it, you could write code in the Workbook_Open event which captures the user's userID, name, etc (using Windows APIs) and persist these values somewhere visible to you. An extension to this idea is to get the workbook to regularly poll (using the OnTime method) a database, text file on the network, etc where you can set a value to tell the workbook to close, effectively throwing out the current user so that you can open the workbook. -- "PS" wrote in message ... Hello, In a Network Computer, an Excel file is opened by someone (eg. PS) When I open the Excel file, this message dialog is prompted aaa.xls is locked for editing by 'PS' Open ..... ...... ....... ..... ..... ...... ...... in use. My Question is "Is there any way to extract 'PS' ?" Maybe API ? Thanks in advance. This is my question. How do I use the Windows API to extract the Windows login information (username) to use in the Workbook_Open event of who has the Excel workbook open for editing. Any help would be greatly appreciated Thanks, Mike |
All times are GMT +1. The time now is 01:41 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com