Zugriff auf den Desktop Application aus einen Dienst

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 115825 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Zusammenfassung

Unter Windows NT, Version 3.1, wenn einen Dienst auf dem Desktop-Anwendung zugreifen soll müssen Sie den Dienst auf dem LocalSystem-Konto ausführen. Einem Dienstprozess unter dem LocalSystem-Konto (oder ein Prozess von einem solchen Dienst gestartet) kann Meldungsfelder, Fenster und Dialogfelder anzeigen. Das Konto Lokales System ausgeführten Prozesse werden nicht während der Abmeldung vom System getrennt. Eine Reihe von Änderungen wurden vorgenommen, um Windows NT, Version 3.5, die die Art und Weise betreffen, die Windows NT mit diesen Diensten interagiert. Darüber hinaus verfügt Windows NT 3.51 eine umfassendere Reihe von desktop APIs.

Hinweis: Mit interaktive Dienste unter dem Systemkonto ist eine sehr gefährliche üben. Dies gilt insbesondere der Befehlsprozessor und Batchdateien. Ein Benutzer das System steuern möchte kann nur zum Abrufen einer interaktiven System-Eingabeaufforderung STRG + C drücken.

Weitere Informationen

Im folgenden werden neue Features der Windows NT, Version 3.5, Dienste betreffen:
  • Das Konto des angemeldeten Benutzers ist das einzige Konto Zugriff auf den Desktop-Anwendung. Das LocalSystem verfügt nicht mehr zugreifen. Daher ist es möglich, erhalten Zugriff auf den Desktop durch den Benutzer imitiert, bevor alle Benutzer oder GDI aufruft.
  • Konsolen- und GUI-Anwendungen aus einem Dienstprozess während einer bestimmten Anmeldesitzung gestartet werden ausgeführt, auf einem unsichtbaren Arbeitsstation und Desktop, die für die Sitzung eindeutig sind. Die Arbeitsstation und Desktop sind erstellt automatisch beim Starten der ersten Anwendung in der Sitzung; Sie werden beim Beenden der letzten Anwendung zerstört. Es gibt keine Möglichkeit, diese nicht sichtbaren Desktops sichtbar zu machen.
  • Wenn Sie einen Dienst in das Localsystem-Konto angemeldeten Benutzer interagieren, geben Sie SERVICE_INTERACTIVE_PROCESS Flag im Aufruf von CreateService(). Zum Beispiel:
          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 );
    						
    Wenn Sie ein anderes Konto als Localsystem, angeben Wenn SERVICE_INTERACTIVE_PROCESS verwenden, erhalten Sie Fehler INVALID_PARAMETER (87).
  • Wenn Sie CreateProcess(), verwenden um den Prozess zu starten, und Sie Ihren Dienst für den Benutzer-Desktop anmelden möchten, weisen Sie den Parameter Lpdesktop, der die STARTUPINFO-Struktur mit "WinSta0\\Default".
  • Dienste, die einfach sichtbaren Benutzerbenachrichtigung benötigen dazu können durch Aufrufen von MessageBox() mit MB_SERVICE_NOTIFICATION-Flag. Mit dem Flag MB_DEFAULT_DESKTOP_ONLY funktioniert als gut, aber nur, wenn Desktop des Benutzers aktiv ist. Wenn die Arbeitsstation gesperrt oder ein Bildschirmschoner ausgeführt wird, schlägt der Aufruf fehl.

    Hinweis: Wenn Sie Code für eine Anwendung schreiben, die als ein Dienst oder eine ausführbare Datei ausgeführt werden können, können Sie nicht MB_SERVICE_NOTIFICATION sowie eine nicht-NULL-HwndOwner verwenden.
  • Keine Ausgabe zu einem Fenster ausgeführt wird nicht angezeigt oder in irgendeiner Weise an die Anwendung zur Verfügung gestellt. Versucht, Bits aus den Ergebnissen angezeigt, in einen Fehler zu lesen.
  • GUI-Dienste erhalten WM_QUERYENDSESSION-WM_ENDSESSION-Meldungen auf Abmelden und Herunterfahren nicht; Sie erhalten stattdessen Ereignisse CTRL_LOGOFF_EVENT und CTRL_SHUTDOWN_EVENT. Diese Dienste werden vom System bei der Abmeldung nicht beendet.

Eigenschaften

Artikel-ID: 115825 - Geändert am: Samstag, 1. März 2014 - Version: 2.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Win32 Application Programming Interface, wenn verwendet mit:
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
Keywords: 
kbnosurvey kbarchive kbmt KB115825 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 115825
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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