Toegang tot het bureaublad van de toepassing van een Service

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

115825
Dit artikel is gearchiveerd. Het wordt aangeboden in de huidige vorm en wordt niet meer bijgewerkt.
Samenvatting
Onder Windows NT versie 3.1, als u een service die toegang hebben tot debureaublad toepassing, moet u de service in de account LocalSystem uitvoeren. EENserviceproces uitgevoerd in de lokale systeemaccount (of een proces gestartuit dergelijke service) kunt weergeven berichtvensters, vensters en dialoogvensters.Processen die worden uitgevoerd in de lokale systeemaccount niet worden beëindigd doorhet systeem tijdens het afmelden. Een aantal wijzigingen zijn aangebracht in Windows NTversie 3.5 die invloed hebben op de manier waarop die Windows NT met deze services samenwerkt.Windows NT 3.51 heeft bovendien een uitgebreidere set desktop API's.

Opmerking: Interactieve services uitvoert onder de systeemaccount is een zeergevaarlijke praktijk. Dit geldt met name van de opdrachtverwerker enbatch-bestanden. Een gebruiker wil beheren, het systeem druk gewoon CTRL + Ceen opdrachtprompt interactieve systeem ophalen.
Meer informatie
De volgende zijn nieuwe functies van Windows NT versie 3.5, dieServices:
  • De account van de aangemelde gebruiker is de enige account die toegang tot het bureaublad van de toepassing. De LocalSystem heeft niet langer toegang. Daarom is het mogelijk om toegang te krijgen tot het bureaublad imiteren de gebruiker voordat elke gebruiker of GDI aanroept.
  • Console en GUI-toepassingen worden gestart vanuit een serviceproces tijdens een bepaalde aanmeldingssessie worden uitgevoerd op een onzichtbare window station en bureaublad die uniek zijn voor die sessie. Window station en desktop worden automatisch gemaakt wanneer de eerste toepassing in de sessie begint; ze worden vernietigd wanneer de laatste toepassing wordt afgesloten. Er is geen aan deze onzichtbare desktops zichtbaar te maken.
  • Als u een service van de account localsystem voor interactie met de aangemelde gebruiker de vlag SERVICE_INTERACTIVE_PROCESS in de aanroep opgeven op CreateService(). Bijvoorbeeld:
          schService = CreateService(         schSCManager,         serviceName,         serviceName,         SERVICE_ALL_ACCESS,         SERVICE_INTERACTIVE_PROCESS | SERVICE_WIN32_OWN_PROCESS,         SERVICE_DEMAND_START,         SERVICE_ERROR_NORMAL,         lpszBinaryPathName,         NULL,         NULL,         NULL,         NULL,         NULL );						
    Als u een andere account dan localsystem opgeven wanneer u SERVICE_INTERACTIVE_PROCESS, krijgt u fout INVALID_PARAMETER (87).
  • Als u CreateProcess() gebruiken om uw proces te starten en u wilt uw aanmelden op het bureaublad van gebruikers, het toewijzen van de parameter lpdesktop van service de struct STARTUPINFO met "WinSta0\\Default".
  • Services die een gebruikersmelding weergegeven van de moeten hiervoor MessageBox() aanroepen met de vlag MB_SERVICE_NOTIFICATION. Met de De vlag MB_DEFAULT_DESKTOP_ONLY werkt, maar alleen als de gebruiker bureaublad is actief. Als het werkstation is vergrendeld of een schermbeveiliging wordt uitgevoerd, mislukt de aanroep.

    Opmerking: Als het schrijven van code voor een toepassing die kan worden uitgevoerd als een service of een uitvoerbaar bestand, kunt u de MB_SERVICE_NOTIFICATION niet gebruiken en een NULL-hwndOwner.
  • Gedaan om een venster uitvoer niet wordt weergegeven of beschikbaar gemaakt voor de toepassing op geen enkele manier. Toegangspogingen bits uit de resultaten weergeven in een fout.
  • GUI-services ontvangt geen berichten WM_QUERYENDSESSION/WM_ENDSESSION afmelden en afsluiten; in plaats daarvan ontvangen ze CTRL_LOGOFF_EVENT en CTRL_SHUTDOWN_EVENT-gebeurtenissen. Deze services worden niet beëindigd door de systeem bij het afmelden.
3,50

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 115825 - Laatst bijgewerkt: 03/01/2014 15:13:46 - Revisie: 6.0

  • Microsoft Win32-API
  • kbnosurvey kbarchive kbmt KB115825 KbMtnl
Feedback