Announcement

Collapse
No announcement yet.

Win NT - Services & Task-Manager

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Win NT - Services & Task-Manager

    Hi !

    Zwei Probleme bezügl. Win-NT 4.0 :

    1) Wie kann ich unter Win NT eine Liste von laufenden Services abrufen oder nach einem bestimmten Service, von dem ich weiss, dass es läuft, und welchen Namen er hat (tu ich aber eigentlich nicht), suchen ??? Wie kann ich diesen nun ansprechen und vor allem beenden ?!?

    2) Wie kann ich die Task-Liste (da wo alle laufenden Programme aufgeführt sind) über Programmcode aufrufen, wenn diese eigentlich über CTRL+ALT+DEL gesperrt ist ?!?

    (Bei Antwort bitte auf die Fragennummer verweisen !!!)

    Vielen Dank schon mal

    Matthias

  • #2
    Hallo,

    zu Frage 1: <br>
    Der <b>Service Control Manager</b> (SCM) kann über API-Funktionen abgefragt werden. Wenn im Forum nach der Zeichenkette "QueryServiceStatus" gesucht wird, sollten sich Beispiele für das Starten/Beenden von NT-Diensten finden lassen.

    zu Frage 2: <br>
    Was bedeutet "wenn diese eigentlich über CTRL+ALT+DEL gesperrt ist ?!?"

    Comment


    • #3
      Ich denke die Tastenkombination wird abgefangen und "abgewürgt". Also der Taskmanager befindet sich als Taskman.exe im winnt verzeichnis läßt sich allerdings nicht ohne weiteres starten, vielleicht braucht er bestimmte Parameter und hier kennt die jemand?

      Comment


      • #4
        Hallo Herr Kosch !

        Vielen Dank schon mal für den 1. Tip.

        Zu Frage 2) Damit meinte ich, dass es durch den Administrator verboten worden ist über die Tastenkombination CRTL + ALT + DEL den Taskmanager aufzurufen...

        Matthia

        Comment


        • #5
          Mal ne andere Sache -

          ich hab jetzt rausbekommen, dass das Programm, dass ich suche gar kein Service ist. Der Task-Manager ist jedoch gesperrt, sodass ich hier nicht danach suchen kann...

          Frage :

          Wie bekomme ich eine List aller aktiven Programme (auch wenn dazu kein Fenster existiert -> nur Icon in TBNA) ?!?

          Matthia

          Comment


          • #6
            Hallo,

            Beispiele zur Lösung dieser Aufgabe wurden bereits mehrfach im Forum gezeigt, das folgende stammt aus einer früheren Antwort von mir. Dabei zählt die Win32-API-Funktion <b>EnumProcesses</b> (unter NT) alle laufenden Prozesse (ob Fenster oder nicht) auf und gibt den Pfad des dazugehörenden Moduls zurück:
            <pre>
            const
            cPSAPIDLL = 'PSAPI.dll';

            function EnumProcesses(lpidProcess: LPDWORD;
            cb: DWORD;
            var cbNeeded: DWORD): BOOL stdcall;
            external cPSAPIDLL;

            function GetModuleBaseNameA(hProcess: THandle;
            hModule: HMODULE;
            lpBaseName: PAnsiChar;
            nSize: DWORD): DWORD stdcall;
            external cPSAPIDLL;

            procedure TForm1.Button2Click(Sender: TObject);
            var
            i : Integer;
            pidNeeded : DWORD;
            PIDList : array[0..1000] of Integer; // Obergrenze !!!
            PIDName : array [0..MAX_PATH - 1] of char;
            PH : THandle;
            begin
            if not EnumProcesses(@PIDList, 1000, pidNeeded) then
            raise Exception.Create('PSAPI.DLL ist nicht vorhanden!');
            for i := 0 to (pidNeeded div sizeof (Integer)- 1) do
            begin
            PH := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
            False, PIDList[i]);
            if PH <> 0 then
            begin
            if GetModuleBaseNameA(PH, 0, PIDName, sizeof (PIDName)) > 0 then
            begin
            ListBox1.Items.Add('process : ' + PIDName);
            CloseHandle(PH);
            end;
            end;
            end;
            end;
            </pre&gt

            Comment

            Working...
            X