Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
sacar el username de windows...

alguien sabe como hacerlo? pero no usando el getusername... de trucomania. la api de windows...
eso por ahora no me sirve porque lo quiero usar en un caso especial con un servicio.... alguien conoce alguna manera distinta de sacar el username de windows... o algun componente que lo haga sin trabajar con la api?
Gracias!
Responder Con Cita
  #2  
Antiguo 07-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por kanvictor
(...) eso por ahora no me sirve porque lo quiero usar en un caso especial con un servicio
¿Y qué tiene de especial el caso? ¿No puedes usar la función que refieres desde el servicio? ¿Se trata de un servicio de/para Windows? ¿Cuál es el problema, pues?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Seguramente el problema es que el servicio se ejecuta con LocalSystem, lo cual no esta mal pero puede escapar un poco de la lógica del programa. ¿Que pasaría si hay dos sesiones de usuarios logueados al mismo tiempo? ¿Cuál es la que quieres que tome?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 07-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por delphi.com.ar
¿Que pasaría si hay dos sesiones de usuarios logueados al mismo tiempo?
¿Es posible? ¿Pueden iniciarse en Windows dos sesiones diferentes? Si la respuesta es afirmativa, vas a llevar razón, puesto que:

Cita:
Empezado por SDK Win32
The GetUserName function retrieves the user name of the current thread. This is the name of the user currently logged onto the system.
Pero, ¿entonces estoy equivocado si pienso que no es posible iniciar dos sesiones en Windows por dos usuarios diferentes a la misma vez?
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 07-07-2005 a las 21:33:00. Razón: (corrección del texto)
Responder Con Cita
  #5  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por dec
¿Es posible? ¿Pueden iniciarse en Windows dos sesiones diferentes?
Si es posible, Terminal Server es un ejemplo de ello. Además es posible que algunos procesos sean creados con otros usuarios (RunAs y/o CreateProcessAsUser). Por eso GetUserName responde al CurrentThread.

Por otro lado puede encontrar esto:
Cita:
The WNetGetUser function retrieves the current default user name or the user name used to establish a network connection.
Sería bueno saber para que quiere el servicio el usuario..
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 07-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Gracias por las aclaraciones al respecto Federico.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Post Explicacion mas clara...

Ante todo gracias por contestar; voy a ser mas claro en el inconveniente que estoy teniendo:

sucede que desde un servicio al utilizar el getusername, no se comporta de la misma manera que ejecutandolo desde un form, ya que en vez de salir el usuario que inicio la sesion en cuestion, sale el usuario SYSTEM.
Por ahora he tratado de las siguientes maneras desde el servicio sin exito:

1- API de windows
2- Variables de entorno
3- Sacar info del bde (sirve, pero tengo que tener instalado bde o sea no sirve..)

Honestamente por ahora no encuentro nada prolijo.... para hacer esto...
es raro que no exista nada implementado..Además no tendría por que ser algo complicado... pero me esta generando problema la resolucion de este inconveniente.. si alguien sabe algo se los agradecere....

Muchas Gracias!
Responder Con Cita
  #8  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Exclamation :(

Habia tratado solo con el GetUserName... ahora use el wnetgetuser ... y tampoco funciona ... sale usuario System al ejecutarlo desde el servicio...
Responder Con Cita
  #9  
Antiguo 08-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Es que tu servicio se ejecuta con el usuario System, precisamente una de las ventajas de los servicios, es que se pueden ejecutar sin que ningún usuario este logueado en el sistema. Si quieres puedes hacer que tu servicio se ejecute con otro usuario que no sea LocalSystem, pero viendo las necesidades que tienes... ¿Tiene que ser un servicio?.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Exclamation es verdad...

Es cierto lo que comentas, aqui hay un articulo que lo confirma:
Código:
Windows NT services run as LocalSystem by default. LocalSystem is a
predefined local account and any service running under LocalSystem: 
The service can NOT open HKEY_CURRENT_USER .
The service can open HKEY_LOCAL_MACHINE\SECURITY.
The service has no network credentials and can only access network 
resources using a null session. If a share or pipe is accessible by Guest via a 
null session, it has access. There is a common misconception that a service 
running as LocalSystem has no network access.
Gracias a esta posibilidad al margen lei que hay grandes problemas de seguridad...(que casualidad microsoft dando "la nota" jajaj)... tema interesante para tratar en algun momento...

Te cuento que lametablemente estoy trabajando en una licitacion ya aprobada, que tiene normas muy claras en cuestiones de arquitectura y estoy obligado a utilizar un servicio... ... estoy investigando ahora como hacer para ejecutar el servicio, pero como usuario... todavia no he encontrado en la red nada concreto de como hacer esto.. ya que todo el mundo se "arregla" por asi decirlo con un programa normal puesto en el run del registry....

Bueno si hay algo en lo que puedas aconsejarme, estaré mas que atento, y Muchas Gracias!!

Última edición por marceloalegre fecha: 08-07-2005 a las 15:16:55.
Responder Con Cita
  #11  
Antiguo 08-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por kanvictor
... estoy investigando ahora como hacer para ejecutar el servicio, pero como usuario...
Es mas que sencillo: Inicio \ Ejecutar \ services.msc. Buscas tu servicio, haces doble click sobre el mismo y te va a mostrar una ventana con la configuración del servicio, vas a la solapa: "Iniciar Sesión", y en lugar de tildar la opción "Cuenta del sistema local" (LocalSystem) elijes: "Esata cuenta" y pones el usuario, la contraseña y su confirmación.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #12  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
ese es el problema lamentablemente... no se que sesion puede usar quien use la aplicacion....
o sea mi idea o plan, minimizando lo mas posible seria llegar a poder hacer algo de esto:
Código:
If SeLogueoUnUserNoSystem Then
hacer lo que yo quiera...
poner esto con un timer o ciclo dentro del servicio ...

el tema es que estando el servicio ejecutandose en el contexto de LocalSystem no tengo manera de preguntar si se logueo alguien porque estoy dentro de system....

es todo un tema, no le veo una solución muy practica; ... y muchas gracias por responder y tan rapido!!
Responder Con Cita
  #13  
Antiguo 08-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Fíjate si esto puede servirte de algo:
http://msdn.microsoft.com/library/de...n_packages.asp
http://www.elists.org/pipermail/delp...il/017444.html

Con este código podrías notificar a tu proceso cuando un usuario se loguea y cuando se desloguea, y tendrías que mantener una lista de los mismos.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #14  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Estaba pensado... voy a tener que agarrar para otro lado.... ejemplo que se me ocurre, puede ser ver las aplicaciones que se cargan despues de loguear un usuario... y preguntar por si existe alguna de esas (de las que carga windows por obligatoriamente) como el explorer.exe o alguna de esas... tendria que ver si eso da resultado... alguna forma tiene que existir tiene que existir algun comportamiento por el cual pueda preguntar aunque este en el entorno de localsystem...

Saludos!..
Responder Con Cita
  #15  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Epa! cuando estaba escribiendo lo anteriormente dicho vi tu respuesta, voy a ver que puedo hacer con eso, y gracias!
Responder Con Cita
  #16  
Antiguo 08-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Fíjate mi comentario anterior...
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #17  
Antiguo 08-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por kanvictor
Epa! cuando estaba escribiendo lo anteriormente dicho vi tu respuesta, voy a ver que puedo hacer con eso, y gracias!
Estamos verdaderamente cruzados!..
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #18  
Antiguo 08-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Talking

JajJAja! si muy cruzados! y MUCHISIMAS GRACIAS!!, en cuanto tenga la respuesta funcional al caso, la posteo para todos; nunca se sabe a quien le puede suceder lo mismo en algun momento...

Saludos!
Responder Con Cita
  #19  
Antiguo 11-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 19
marceloalegre Va por buen camino
Respuesta al problema...

Para que quede registrado, despues de muchas opciones complejas para solucionar este asunto me decidi por lo que dice en este post:
http://www.clubdelphi.com/foros/showthread.php?t=22018

al controlar la ejecucion del explorer.exe como shell puedo decir que a partir de ahi, se logueo un usuario.

Saludos a todos!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:23:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi