![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como obtener el Nombre de usuario sin usar GetUserName
Buenas
Mi duda es la siguiente, deseo saber el "Nombre" del usuario que está conectado en el sistema. Cuando me refiero a Nombre lo hago al que se puede cambiar desde Panel de Control -> Cuentas de usuario, no al del Usuario del sistema. No se si me he explicado muy bien pero os pongo un ejemplo: Imaguienemos que creo un usuario llamado Usuario1, bien ahora voy Panel de Control -> Cuentas de Usuario y decido cambiarle el nombre por Usuario999. Pues bien este es el nombre que XP utilizará cuando te Logeas o estás pinchas en Inicio arriba de todo pero no es el nombre con el que se creó la cuenta (de hecho si vais a C:\Documents and Settings\ la carpeta creada es Usuario1 no Usuario999. De aquí que viene el problema porque si intento utilizar en Delphi las funciones GetUserName, GetUserNameEx o GetEnvironmentVariable('USERNAME') siempre devuelven Usuario1 no Usuario999. Conoceis alguna función que devuelva esta información, es decir la información del usuario conectado en este momento. Muchas Gracias |
#2
|
|||
|
|||
Hola menfis:
Se me ocurre que puedes probar con la función SHGetFolderPath para obtener la carpeta local del usuario, y de ahí extraer su nombre. Espero que te sirva.
__________________
Guía de Estilo del Foro |
#3
|
|||
|
|||
Muchas gracias Jan pero es precisamente lo que ya tengo, las carpetas de "Documents and Settings" se crean siempre con el nombre original y no cambian aunque tu vayas a "Panel de Control -> Control de Usuarios -> Cambiar Nombre del Usuario X" yo necesito el "nombre" del usuario cuando ya se ha cambiado no del original.
|
#4
|
|||
|
|||
![]() Cita:
Salu2 |
#5
|
||||
|
||||
![]() La forma mas sencilla que tendrás es leer del Environment (variables de entorno) la variable "USERNAME", lo conseguirás con la API 'GetEnvironmentVariable'.
Por si no está del todo claro, Ejecutas cmd, y escribes "echo %USERNAME%" ó
Suerte! |
#6
|
||||
|
||||
![]() Lo siento, ese fue un BUG. Procurare tu respuesta
|
#7
|
||||
|
||||
![]() Bueno acá está lo prometido, lo único malo es que lo hice en JavaScript.
<script> var User = new ActiveXObject("Shell.Users").currentUser var Name = User.setting("DisplayName") if (!Name) Name = User.setting("LoginName") alert(Name) </script> Lo copias a un nuevo html y lo utilizas; estoy analizando cómo hacer un buen uso de éste ActiveX. Este es un intento fallido!
Suerte! |
#8
|
||||
|
||||
Cita:
// Saludos |
#9
|
||||
|
||||
![]() Gracias Roman
![]()
|
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|