[Delphi] Controleren of gebruiker is ingelogd

Pagina: 1
Acties:

  • Donderwolk
  • Registratie: Januari 2002
  • Laatst online: 11-06 11:16
Op het moment ben ik bezig om een service te schrijven voor windows die automatisch de computer afsluit op tijd x:xx als er op dat moment geen gebruiker is ingelogd. Wat ik graag wil weten is hoe ik kan zien welke gebruiker er is ingelogd / of er een gebruiker is ingelogd. Hoe kan ik dit in Delphi controleren?

Pwnd


  • Peetman
  • Registratie: Oktober 2001
  • Laatst online: 27-08 23:01

Peetman

Tjah....

Er is een API-call GetUserName, kijk voor meer info op Allapi.net of MSDN

[ Voor 5% gewijzigd door Peetman op 26-11-2002 13:52 ]


  • glrfndl
  • Registratie: Juni 1999
  • Niet online
getusername werkt niet als je een service hebt draaien. De functie geeft dan SYSTEM terug, omdat je service onder het system account werkt.

Prepare for unforeseen consequences


  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

jnijboer schreef op 26 November 2002 @ 13:57:
getusername werkt niet als je een service hebt draaien. De functie geeft dan SYSTEM terug, omdat je service onder het system account werkt.
Idd, je hebt gelijk...
Heb dan ook een site gevonden waar héééél algemeen de stappen beschreven staan om vanuit een service de Interactive user op te halen, source kan je blijkbaar kopen...

  • Donderwolk
  • Registratie: Januari 2002
  • Laatst online: 11-06 11:16
Moet er nu wel uitkomen. Bedankt voor de reacties.

Pwnd


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Check eens bij de API-call OpenInputDesktop, daar kan het mee.

Professionele website nodig?


  • glrfndl
  • Registratie: Juni 1999
  • Niet online
OpenInputDesktop lijkt het ook niet te doen als je die in een service aanroept, of ik doe iets fout, dat kan natuurlijk ook ;)
Ik heb het op de volgende manier opgelost: ik kijk of het proces explorer.exe draait, als dat zo is dan is er iemand ingelogd. Misschien niet helemaal waterdicht, maar goed genoeg voor mijn toepassing.

Prepare for unforeseen consequences


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Is nog knap waterdicht ook, maar wel een hack :P

Geef je bij OpenInputDesktop wel het goede WindowStation op? Ik zou ff met EnumWindowStations eroverheen loopen om te controleren of er ergens een InputDesktop beschikbaar is. Als het goed is ben je dan ook Terminal Services compliant.

Professionele website nodig?


Verwijderd

Je zal creatief moeten zijn. Maak een service die een programma opstart tijdens het starten van de service. Laat dat programma de username (SID) aan de service doorgeven, dan kom je een stuk verder denk ik.
Pagina: 1