AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Einschränkungen der verfügbaren Ressourcen im Dienste-Konto?
Thema durchsuchen
Ansicht
Themen-Optionen

Einschränkungen der verfügbaren Ressourcen im Dienste-Konto?

Ein Thema von Bernhard Geyer · begonnen am 11. Okt 2007 · letzter Beitrag vom 11. Jan 2017
 
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#8

AW: Einschränkungen der verfügbaren Ressourcen im Dienste-Konto?

  Alt 11. Jan 2017, 09:44
Moin Bernhard, also Fenster sind erstmal natürlich keine GDI-Ressourcen, sondern User-Ressourcen. GDI-Ressourcen sind bspw. Schriftart, Pinsel, Gerätekontext.

Daß seit mindestens Vista Dienste in Sitzung 0 untergebracht sind und damit auch eigene Desktops haben, weißt du sicher. Lokal ("Konsole") angemeldete Benutzer haben ihre Programme in Sitzung 1 laufen und weitere Sitzungen können über RDP erzeugt werden. Ab XP gab es schon erweiterte Einschränkungen (da waren ja TS von Haus aus schon an Bord). Das alles dient der Verhinderung von Shatter-Angriffen (eine Form von Angriffen welche die Rechte von Diensten mit Fenstern auszunutzen versuchten, indem den Fenstern von unprivilegierten Prozessen Befehle übermittelt). Die wichtigste Information fehlt so gesehen: welche Windowsversion benutzt du?

Hab auf meinen Rechner nur eine englische Windowsversion, aber mit Vista wurde der Dienst UI0Detect eingeführt um solche interaktiven Dienste wie du sie beschreibst halbherzig zu unterstützen. Mit folgender Beschreibung:
Zitat:
Enables user notification of user input for interactive services, which enables access to dialogs created by interactive services when they appear. If this service is stopped, notifications of new interactive service dialogs will no longer function and there might not be access to interactive service dialogs. If this service is disabled, both notifications of and access to new interactive service dialogs will no longer function.
Dieser Dienst dient dazu eine Abwärtskompatibilität mit Diensten herzustellen die veraltet sind und deshalb noch immer Fenster im Kontext des Dienstes benutzen. Soweit ich weiß, wird dann auch

Grob gesagt hängt in deinem Fall also die Beschränkung an der Sitzung in welcher Dienste laufen, nicht am jeweiligen Dienstekonto (es gibt ja mehrere mit verschiedenen Einschränkungen bzgl. Netzwerkfähigkeit).

Die korrekte Methode wäre, daß dein Dienst selbst keine Fenster erzeugt, sondern sich ein anderes Programm auf dem Desktop des Benutzers als interaktiver Akteur betätigt, der über COM oder einen beliebigen anderen RPC-Mechanismus mit dem Dienst schnackt um Ausgaben von diesem anzuzeigen bzw. Eingaben entgegenzunehmen und weiterzuleiten.

Es gibt zwar auch Möglichkeiten für einen Dienst Fenster in andere Sitzungen einzuschleusen, aber das wird dann schon ziemlich kompliziert und setzt - zumindest in den mir bekannten Methoden - voraus daß ein Programm in der gewünschten Sitzung/WindowStation/Desktop existiert und dazu mißbraucht werden kann. USBDLM benutzt eine solche Methode, soweit ich das sehen konnte.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz