![]() |
Prozess verstecken
hello
gibt es irgend einen befehl, um das programm im taskmanager unsichtbar zu machen, oder wenigstens nicht bei den Tasks anzeigen? vielen dank |
Re: Prozess verstecken
Warum sollte man das wollen?
|
Re: Prozess verstecken
für ein im Hintergrund laufendes Programm zum Beispiel (Protokollierungsprogramm)
zum Thema:
Delphi-Quellcode:
wenn du keine weiteren Forms offen hast, ist das Programm versteckt.
application.mainform.visible:=False;
|
Re: Prozess verstecken
Wenn du nicht willst, dass dein Programm beendet wird, dann nimm einen Service, aber Programme, die sich (In der Prozessliste) vor mir verstecken wollen, würden mir nicht auf den Rechner kommen ;) Das würde dem Anwender nämlich jegliche Kontrolle über das Programm entziehen. :roll:
Man liest sich, Stanlay :hi: |
Re: Prozess verstecken
Versuch mal das:
Delphi-Quellcode:
Hoffe das hilft dir weiter.
function RegisterServiceProcess
(dwProcessID, dwType: DWord) : DWord; stdcall; implementation {$R *.DFM} function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord; external 'KERNEL32.DLL' name 'RegisterServiceProcess'; //Diese Procedure versteckt die Anwendung vor dem Taskmanager: procedure TForm1.Button1Click(Sender: TObject); begin RegisterServiceProcess(0,1); end; // Und diese zeigt sie wieder an: procedure TForm1.Button2Click(Sender: TObject); begin RegisterServiceProcess(0,0); end; Und mach keinen Blödsinn damit! :angel: Frohes Fest und eine guten Rutsch, ich mach jetzt Feierabend :zwinker: Cya, Sar |
Re: Prozess verstecken
|
Re: Prozess verstecken
Hallo,
so weit ich weiss funktioniert RegisterServiceProcess nur unter Win95. Bzw. ab NT4.0 erscheint das Programm trotzdem im Taskmanager |
Re: Prozess verstecken
Zitat:
|
Re: Prozess verstecken
Und trotzdem gibt es einen Eintrag in der Codelibrary dazu ? (Siehe oben)
|
Re: Prozess verstecken
Zitat:
|
Re: Prozess verstecken
Ich erstelle mal keinen neuen Thread dazu, sondern packe meine Frage mal hinterher, weils ja irgendwie hier dazu gehört...
Ich würde gerne den Prozess eines Services aus dem Task-Manager entfernen. Irgendwie finde ich es eh seltsam, dass der dort auftaucht, sobald man ihn über den Dienste-Dialog gestartet hat. Gibt es für einen Service eine bestimmte Einstellung dafür oder muss ich da genau so tricksen wie z.B. mit dem oben angesprochenen Code aus der Library? |
Re: Prozess verstecken
Ich wüsste nicht wozu sowas nötig ist, außer um Unsinn damit anzustellen, wenn dein Programm Arbeiten im Hintergrund für alle Benutzermachen soll und nicht jeder Benutzer Zugriff auf ihn haben soll, erstelle einen System-Dienst (wie z.B. der Apache das tut), ansonsten kann er eigentlich auch im Benutzerkontext laufen. Es sollte zu keinem Zweck nötig sein, einen Prozess völlig zu verbergen, also auch vor Administratoren.
|
Re: Prozess verstecken
Hallo? Beitrag gelesen oder einfach nur auf ein Stichwort hin geantwortet?
Es geht um einen System-Dienst. Dieser ist ganz nochrmal bei den Diensten gelistet, wo er gerne bleiben kann und soll. Jedoch wird er leider auch im Task-Manager angezeigt, wo er meiner Meinung nach nichts zu suchen hat. Dort kann man ihn ja nicht mal beenden. Und da viele andere Dienste da nicht auftauchen, frage ich mich eben, wie man einen Dienst aus der Prozessliste raushält. |
Re: Prozess verstecken
Warum hat er da nichts zu suchen? Und mit entsprechenden Tool siehst du auch alle anderen Dienste. Für mich ist dass immer nochkein hinreichender Grund warum du den Dienst verstecken willst. Ich würde mich eher fragen, warum dein Dienst kein Kindprozess vom Servicemanager svchost ist.
|
Re: Prozess verstecken
Zitat:
Zitat:
Zitat:
Und dann eben: 1. C:\myserv.exe /install 2. services.msc 3. Rechtsklick, starten Ich sag ja, es kann durchaus sein, dass im Code des Dienstes irgendeine Einstellung nicht (richtig) gesetzt ist, aber ich habe keinerlei Ansatzpunkt, was ich da machen könnte. Deshalb frage ich ja nach... |
Re: Prozess verstecken
Es war nicht Sinn der Sache dich anzugreifen oder etwas zu unterstellen, ich erkenne nur absolut keinen Sinn darin einen Sinn verbergen zu wollen, die Frage ist eher, ob es ein gutes Konzept ist, wenn es möglich ist das andere Dienste/Prozesse (ausgenommen die auf die kein Zugriff für den Benutzer besteht bzw. Adminrechte benötigt werden), vom normalen Taskmanager nicht angezeigt werden, welcher zur Überwachung der laufenden Prozesse gut ist (sein sollte). Ich finde einfach auch keinen sinnvollen (legalen) Grund dafür sowas zu verbergen.
|
Re: Prozess verstecken
Moin,
Du kannst den ServiceType auf stDevice stellen. Dann ist er wie ein Treiber und taucht weder im DienstManager, noch im TaskManager auf. Evtl. zusätzlich den StartType auf stSystem. Gnade Dir sonstwer, wenn Du damit Blödsinn anstellst! Gruss EL |
Re: Prozess verstecken
Keine Sorge, ich hab nichts Böses vor.
Und quasi daraus resultierend, hilft mir die Einstellung auf stDevice leider wenig. Der Service ist dann zwar aus der Prozessliste des Taskmanagers verschwunden, leider aber auch aus der Dienste-Liste (services.msc). Da soll er ja ganz normal drin bleiben und steuerbar sein. Verstehe nicht, dass das wohl wirklich umständlicher als nötig ist... Wie machen das denn die ganzen anderen Dienste, die alle nicht im Taskmanager auftauchen, aber ganz normal über die Dienste-Liste angezeigt und gesteuert werden können? |
Re: Prozess verstecken
Hast du dir mal den Pfad der Exe anzeigen lassen? Bei mir ist das svchost.exe -k netsvcs. Das bedeutet, dass es sich um einen DLL-Service handelt. Dokumentation zu DLL-Services habe ich in der MSDN Library nicht gefunden. Anscheinend muss die DLL eine Funktion "ServiceMain" exportieren, die dann automatisch von svchost.exe aufgerufen wird. Weitere Einstellungen sind in der Registry unter HKLM\System\CurrentControlSet\Services\Servicename .
|
Re: Prozess verstecken
Zitat:
tasklist /svc ein, dann bekommst du eine Liste aller laufenden Programme und eine Liste aller Dienste, die im jeweiligen Programm enthalten sind oder gerade laufen. |
Re: Prozess verstecken
Jetzt ist das Stichwort svchost.exe und den Dienst dran anhängen schon mehrfach gefallen.
Vielleicht geht das ja in die richtige Richtung. Kann ich das mit meinem Service, der als exe komiliert wurde (um per "...\myserv.exe /install" installiert werden zu können), nun irgendwie so machen? Oder brauche ich dann einen ganz anderen Ansatz, und dann so wie Apollonius schreibt, mit dem Service als DLL und dann irgendwelchen undokumentierten Funktionen...? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 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