Ir al contenido


Foto

[LAZARUS] Obtener el usuario actual en un sistema MSWindows/Linux


  • Por favor identifícate para responder
5 respuestas en este tema

#1 Jagluiperd

Jagluiperd

    Member

  • Miembros
  • PipPip
  • 36 mensajes
  • LocationBuscando a Wally

Escrito 02 septiembre 2010 - 06:02

Descripción:
- Simple código de ejemplo de como obtener el usuario actual de un Sistema Windows o Linux.

Información previa:
- Compilado empleando las siguientes versiones de Lazarus:
  Windows: 0.9.28.2
  Linux:      0.9.26
- El código compila y se ejecuta tanto bajo Windows como en Linux, sin ninguna modificación.

Información de testeo:
- Probado con exito bajo un sistema Ms Windows XP (SP3) y bajo un Sistema Fedora "Leonidas".

Pasos:
1- En Lazarus abrimos un nuevo Proyecto.
2- Añadimos un Tbutton y un TLabel al Formulario.
3- Ponemos a False la propiedad "Visible" de la Label.
4- Incrustamos las siguientes lineas de código en Unit1 bajo la sección "implementation"

delphi
  1. {$IFDEF MSWINDOWS}
  2. Uses
  3.   Windows;
  4.  
  5.   Function JLPGetUserName : string;
  6.   Var
  7.     userNameBuffer : array[0..255] of char;
  8.     sizeBuffer : DWord;
  9.   Begin
  10.     SizeBuffer := 256;
  11.     getUserName(userNameBuffer, sizeBuffer);
  12.     result := string(userNameBuffer);
  13.   End;
  14. {$ENDIF MSWINDOWS}
  15. {$IFDEF LINUX}
  16.   Function JLPGetUserName : string;
  17.   Begin
  18.     Result := GetEnvironmentVariable('USERNAME');
  19.     If Result = '' then
  20.       Result := GetEnvironmentVariable('USER');
  21.   End;
  22. {$ENDIF LINUX}



5- En el evento Click del botón añadimos las siguientes lineas de código:

delphi
  1.   Label1.Caption:='Usted está trabajando en el Sistema como: '+JLPGetusername;
  2.   Label1.Show;


 
Espero que les sea de utilidad.

Saludos.


  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 02 septiembre 2010 - 06:26

Saludos.

Entiendo que el hilo debe de ir en Trucos y Consejos aunque el lenguaje sea distinto, por eso lo moví a esta sección desde la sección de Lazarus.

Hilo relacionado.
  • 0

#3 Jagluiperd

Jagluiperd

    Member

  • Miembros
  • PipPip
  • 36 mensajes
  • LocationBuscando a Wally

Escrito 02 septiembre 2010 - 06:36

Hola Rolphy Reyes.

Veo tu punto de vista y entiendo tu proceder.

Sin embargo, compruebo que no se adapta a lo que un visitante cualquiera podría encontrarse
al entrar en el foro y ver los temas disponibles, dado que se puede leer claramente:

---------------------------------------------
Lazarus / FreePascal                               
Todo lo relacionado con estos lenguajes de programación
---------------------------------------------

Esto podría llevar a confusión, dado que el ejemplo que propongo, aunque también se podría
catalogar en el apartado Trucos y Consejos, es exclusivo de Lazarus/FreePascal.

¿Cómo podemos atajar/mejorar esto?.

Gracias y un saludo.
  • 0

#4 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 3.965 mensajes
  • LocationMadrid - España

Escrito 02 septiembre 2010 - 06:47

Desde mi punto de vista, el visitante encontrará en el foro de Lazarus el truco que has expuesto y al entrar encontrará que está movido y el link que le llevará hasta él.

No existe gran problema. Si te fijas el área de trucos y consejos está repleto de trucos en lenguajes distintos a delphi. Yo mismo he publicado unos cuantos en C o en C y delphi simultáneamente.  ;)

Ciertos temas pueden tener distintas ubicaciones según distintos pareceres... Lo importante es que puedan llegar a encontrarse con relativa facilidad.

En lo referente a tu truco, decir que en el entorno de Windows, desde la API, la variable de entorno "USERNAME" devuelve el usuario actual.  (y)


Saludos.
  • 0

#5 Jagluiperd

Jagluiperd

    Member

  • Miembros
  • PipPip
  • 36 mensajes
  • LocationBuscando a Wally

Escrito 02 septiembre 2010 - 07:02

Desde mi punto de vista, el visitante encontrará en el foro de Lazarus el truco que has expuesto y al entrar encontrará que está movido y el link que le llevará hasta él.


Cierto es. Gracias por la aclaración. Error mio al no fijarme.

Saludos.
  • 0

#6 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 02 septiembre 2010 - 07:28

Saludos.

Jagluiperd entiendo tu punto de vista y lo respeto, pero en esta sección como su nombre lo indica esa clase de hilo (post) es que deben de ir aquí.  Recuerda que este mensaje salio a raíz de este y es hecho en Delphi fíjate que enecumene lo posteo en esta sección y no en Delphi o OOP.

Como prueba aquí te muestro algunos mensajes que contienen código distinto a Delphi y/o que lo involucran:
Conocer la fecha de creación de un fichero
Simular pulsación de teclado en caracteres conseguidos con mas de una tecla
Comprueba si tu antivirus te protege

Y así podrás encontrar más.

P.D. En la sección de Lazarus queda un hilo indicando que fue movido a esta sección, creo si no me equivoco, que los usuarios que naveguen en esa sección podrán dar con tu hilo.
  • 0