AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ich werde wahnsinnig !! Registry und TaskMGr

Ein Thema von CReber · begonnen am 29. Jun 2004 · letzter Beitrag vom 29. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#1

Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 10:27
Ich habe folgendes *extrem nervendes* Problem. Ich hab ne DLL geschrieben in der folgende procedure drin ist:

Delphi-Quellcode:
procedure EnableCTRLALTDEL(YesNo : boolean);
const
sRegPolicies = '\Software\Microsoft\Windows\CurrentVersion\Policies';
begin
  with TRegistry.Create do
  try
    RootKey:=HKEY_CURRENT_USER;
    if OpenKey(sRegPolicies+'\System\',True) then
    begin
      case YesNo of
        False:
          begin
            WriteInteger('DisableTaskMgr',1);
          end;
        True:
          begin
            WriteInteger('DisableTaskMgr',0);
          end;
      end;
    end;
    CloseKey;
    if OpenKey(sRegPolicies+'\Explorer\',True) then
    begin
      case YesNo of
        False:
          begin
            WriteInteger('NoChangeStartMenu',1);
            WriteInteger('NoClose',1);
            WriteInteger('NoLogOff',1);
          end;
        True:
          begin
            WriteInteger('NoChangeStartMenu',0);
            WriteInteger('NoClose',0);
            WriteInteger('NoLogOff',0);
          end;
      end;
    end;
    CloseKey;
  finally
    Free;
  end;
end;
Nun habe ich eine Anwendung die diese folgendermassen deklariert:

procedure EnableCTRLALTDEL(YesNo : boolean); external 'denied.dll'
function DisableTaskKeys(bDisable: bool): bool; stdcall; external 'denied.dll'

Das ist eine Art Sperrbildschirm daher die Funktion. Also wird die Exe aufgerufen und es funzt einfach nicht ! Ich bin mir ganz sicher das ich nichts falsch gemacht habe, denn in einer normalen Exe funktioniert es auch. Das einzige was bei meiner anders ist, ist das sie von einem Dienst aufgerufen wird. Die function DisableTaskKeys funktioniert wunderbar. (bitte sag jetzt keiner es liegt an stdcall denn daran liegt es nicht)


Kann es sein das es irgendwie an was anderes (Windows Internes) liegt was ich einfach nur nicht weiß???
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 10:49
Also das hat auf jeden Fall mit dem Dienst zu tun ! Ich nehme an, das Programm weiß nicht welcher User der CURRENT_USER ist weil es vom Dienst gestartet wird ?! Hat jemand ne Idee wie ich das umgehen kann?
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 10:54
Zitat von hOnkibOnk:
Also das hat auf jeden Fall mit dem Dienst zu tun ! Ich nehme an, das Programm weiß nicht welcher User der CURRENT_USER ist weil es vom Dienst gestartet wird ?!
Der Dienst wird per Standard immer unter dem SYSTEM-Account gestartet. Das lässt sich durch den Dienste-Manager ändern. Allerdings wird der Dienst nicht ermitteln können, wer den Dienst gestartet hat.

PATT-Situation, falscher Ansatz

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 11:08
Also der Dienst läuft unter SYSTEM und das Programm das der Dienst startet läuft demnach auch unter SYSTEM. Und nun soll ich es ändern, indem ich beim Dienst einstelle das es nicht unter SYSTEM sondern unter CURRENT_USER starten soll?

Wie? ))

StartType

Beschreibung

StartType legt fest, wie und aus welchen Gründen der Dienst gestartet wird.

Möglichkeiten: stAuto, stBoot, stDisabled, stSystem, stManuel -> Ist momentan auf Auto

ServiceType

Beschreibung

Die Eigenschaft ServiceType gibt den Typ des Dienstes an. ServiceType kann folgende Werte annehmen: stWin32 (der Standardwert, ein Win32-Dienst), stDevice (ein Gerätetreiber) oder stFileSystem (ein Dateisystemtreiber

-> Ist momentan auf stWin32

Interactive

Beschreibung

Interactive legt fest, ob der Dienst mit dem Windows-Desktop interagieren kann. Diese Eigenschaft wirkt sich nur dann aus, wenn ServiceType den Wert stWin32 hat. Weitere Informationen über die Erstellung von interaktiven NT-Diensten finden Sie in der Microsoft-Hilfe.

-> Ist momentan auf False (war schon auf True aber das hat auch nichts gebracht)


Ich muss dem Dienst ja einfach sagen das er das er die SperrBildschirm.exe unter Current_user starten soll. Da bin ich aber atm überfragt


Zitat:
Allerdings wird der Dienst nicht ermitteln können, wer den Dienst gestartet hat.
Das soll auch die gestartete Exe rausfinden und nicht der Dienst! Nur die läuft ja demnach auch unter'm SYSTEM Account.
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 11:16
Zitat von hOnkibOnk:
Und nun soll ich es ändern, indem ich beim Dienst einstelle das es nicht unter SYSTEM sondern unter CURRENT_USER starten soll?
Das geht nicht

Zitat von hOnkibOnk:
Ich muss dem Dienst ja einfach sagen das er das er die SperrBildschirm.exe unter Current_user starten soll. Da bin ich aber atm überfragt
Du kannst den CurrentUser nicht herausbekommen, da an einer NT-Machine (dank Terminal-Services, RPC, ...) mehrere User angemeldet sein können.

Zitat von hOnkibOnk:
Das soll auch die gestartete Exe rausfinden und nicht der Dienst! Nur die läuft ja demnach auch unter'm SYSTEM Account.
Die EXE startet unter dem Account des Aufrufenden - also in diesem Fall SYSTEM vom Dienst. Der kann die EXE zwar unter einem anderen Konto starten, allerdings musst Du beim Start den NT-Account und das zugehörige Passwort angeben.

Auf die Gefahr hin, daß ich mich wiederhole:
Siehe oben
PATT-Situation, falscher Ansatz


......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 11:21
Soll heißen ich muss das ohne Dienst machen, weil es keine Ausweichmöglichkeit gibt?
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 11:24
Zitat von hOnkibOnk:
Soll heißen ich muss das ohne Dienst machen, weil es keine Ausweichmöglichkeit gibt?
Soll zumindest heißen, daß Dein Dienst nicht zuverlässig kontrollieren kann, wer diesen gestartet hat und damit auch die Exe nicht unter dessen Account starten kann (wäre ja auch schlimm )

Kurz: Eine andere Lösung muss her

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
pilif

Registriert seit: 29. Jun 2004
1 Beiträge
 
#8

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 13:51
Hallöchen,

du kannst den Dienst als einer gesetzten User-ID setzen. Im Dienst-Controlpanel rechte MT auf den Dienst, Eigenschaften und im Logon-Tab den User angeben.

Philip
  Mit Zitat antworten Zitat
Schnaddel

Registriert seit: 29. Jun 2004
2 Beiträge
 
#9

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 14:00
Zitat von hOnkibOnk:
Ich habe folgendes *extrem nervendes* Problem. Ich hab ne DLL geschrieben in der folgende procedure drin ist:

Delphi-Quellcode:
procedure EnableCTRLALTDEL(YesNo : boolean);
const
sRegPolicies = '\Software\Microsoft\Windows\CurrentVersion\Policies';
begin
  with TRegistry.Create do
  try
    RootKey:=HKEY_CURRENT_USER;
    if OpenKey(sRegPolicies+'\System\',True) then
    begin
      case YesNo of
        False:
          begin
            WriteInteger('DisableTaskMgr',1);
          end;
        True:
          begin
            WriteInteger('DisableTaskMgr',0);
          end;
      end;
    end;
    CloseKey;
    if OpenKey(sRegPolicies+'\Explorer\',True) then
    begin
      case YesNo of
        False:
          begin
            WriteInteger('NoChangeStartMenu',1);
            WriteInteger('NoClose',1);
            WriteInteger('NoLogOff',1);
          end;
        True:
          begin
            WriteInteger('NoChangeStartMenu',0);
            WriteInteger('NoClose',0);
            WriteInteger('NoLogOff',0);
          end;
      end;
    end;
    CloseKey;
  finally
    Free;
  end;
end;
Nun habe ich eine Anwendung die diese folgendermassen deklariert:

procedure EnableCTRLALTDEL(YesNo : boolean); external 'denied.dll'
function DisableTaskKeys(bDisable: bool): bool; stdcall; external 'denied.dll'

Das ist eine Art Sperrbildschirm daher die Funktion. Also wird die Exe aufgerufen und es funzt einfach nicht ! Ich bin mir ganz sicher das ich nichts falsch gemacht habe, denn in einer normalen Exe funktioniert es auch. Das einzige was bei meiner anders ist, ist das sie von einem Dienst aufgerufen wird. Die function DisableTaskKeys funktioniert wunderbar. (bitte sag jetzt keiner es liegt an stdcall denn daran liegt es nicht)


Kann es sein das es irgendwie an was anderes (Windows Internes) liegt was ich einfach nur nicht weiß???
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10

Re: Ich werde wahnsinnig !! Registry und TaskMGr

  Alt 29. Jun 2004, 14:03
Zitat von pilif:
du kannst den Dienst als einer gesetzten User-ID setzen. Im Dienst-Controlpanel rechte MT auf den Dienst, Eigenschaften und im Logon-Tab den User angeben.
Und, damit hat er sein Ziel den aktuellen Nutzer zu ermitteln auch nicht erreicht

@Schnaddel: Du wolltest sagen

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz