Toegang tot het bureaublad van de toepassing van een Service

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 115825 - Bekijk de producten waarop dit artikel van toepassing is.
Dit artikel is gearchiveerd. Het wordt aangeboden in de huidige vorm en wordt niet meer bijgewerkt.
Alles uitklappen | Alles samenvouwen

Samenvatting

Onder Windows NT versie 3.1, als u een service die toegang hebben tot de bureaublad toepassing, moet u de service in de account LocalSystem uitvoeren. EEN serviceproces uitgevoerd in de lokale systeemaccount (of een proces gestart uit dergelijke service) kunt weergeven berichtvensters, vensters en dialoogvensters. Processen die worden uitgevoerd in de lokale systeemaccount niet worden beëindigd door het systeem tijdens het afmelden. Een aantal wijzigingen zijn aangebracht in Windows NT versie 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 zeer gevaarlijke praktijk. Dit geldt met name van de opdrachtverwerker en batch-bestanden. Een gebruiker wil beheren, het systeem druk gewoon CTRL + C een opdrachtprompt interactieve systeem ophalen.

Meer informatie

De volgende zijn nieuwe functies van Windows NT versie 3.5, die Services:
  • 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.

Eigenschappen

Artikel ID: 115825 - Laatste beoordeling: zaterdag 1 maart 2014 - Wijziging: 6.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Win32-API
Trefwoorden: 
kbnosurvey kbarchive kbmt KB115825 KbMtnl
Automatisch vertaald artikel
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.
De Engelstalige versie van dit artikel is de volgende: 115825

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com