Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi wie hartnaeckige anwendung killen? (https://www.delphipraxis.net/100979-wie-hartnaeckige-anwendung-killen.html)

o0o 6. Okt 2007 13:30


wie hartnaeckige anwendung killen?
 
hi leutz,...fuer meine individuellen beduerfnisse wollte ich mal so ne art taskmanager entwickeln der mehrere task's und prozesse beendet, zb wenn ich zoggen will dass zb die firewall,antivirus,firefox,...geclosed werden per klick.

mein aktueller code:
Delphi-Quellcode:
function KillProcess(const ExeName: String): Boolean;
var
  Prozess       : TProcessEntry32;
  h             : THandle;

begin
  Result := False;
  Prozess.dwSize := SizeOf(Prozess);
  h := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  try
   If Process32First(h, Prozess) then
    Repeat
     If AnsiLowerCase(Prozess.szExeFile) = AnsiLowerCase(ExeName) then Result := TerminateProcess(OpenProcess(Process_Terminate, False, Prozess.th32ProcessID), 0);
    Until (Not Process32Next(h, Prozess)) or Result;
  finally
   CloseHandle(h);
  end;
end;



procedure TForm1.Button1Click(Sender: TObject);
var
   Handle: HWND;
begin
   Handle := FindWindow('avp', nil);
   if Handle <> 0 then
      SendMessage(Handle, WM_CLOSE, 0, 0);
end;
also bei dem grossteil meiner anwendungen gibt es keine probs mit dem closen, nur mein kaspersky will nich.

hat jemand vllcht eine idee wie ich soein task killen kann?^^

waere sehr ueber hilfe dankbar...da o0o

brechi 6. Okt 2007 13:53

Re: wie hartnaeckige anwendung killen?
 
Wäre schlimm wenns so einfach gehen würde.

Luckie 6. Okt 2007 13:53

Re: wie hartnaeckige anwendung killen?
 
Der Prozess dürfte als Dienst laufen. Dienste kann man nicht so einfach "abschiessen", die muss man mit Administratorenrechten über die Diensteverwaltung beenden.

marabu 6. Okt 2007 13:56

Re: wie hartnaeckige anwendung killen?
 
Hallo,

ich kenne die Kaspersky Antiviren-Software nicht, aber ich vermute dass der Hersteller deinen Ansatz als Attacke eines Viren-Kits kennt, wogegen er sich zu schützen weiß. Hinzu kommt, dass dein Betriebssystem Alarm schlagen sollte, wenn der registrierte Virenschutz deaktiviert wurde. Wenn du es tatsächlich hinkriegst den AV-Schutz abzuschießen, dann veröffentliche den Code bitte nicht hier.

Nachdenkliche Grüße

o0o 6. Okt 2007 14:29

Re: wie hartnaeckige anwendung killen?
 
Zitat:

Wenn du es tatsächlich hinkriegst den AV-Schutz abzuschießen, dann veröffentliche den Code bitte nicht hier.
ehm ok in die negative richtung hab in der hinsicht noch garnicht gedacht :?
aber naja hast recht, viele wuerden liebend gerne unfug damit bauen:)

btw hat vllcht jemand ne idee bzw nen kleinen schupser in welche richtung ich googln muss um mein problem in den griff zu bekommen?

thx iom vorraus...da o0o

xZise 6. Okt 2007 14:33

Re: wie hartnaeckige anwendung killen?
 
Naj ;) Laut Process Explorer haben alle avp Prozesse keine Threads ;) Und wo nichts ist, kann man auch nichts abschießen :)

MfG
xZise

sk0r 6. Okt 2007 14:37

Re: wie hartnaeckige anwendung killen?
 
Zitat:

Zitat von xZise
Naj ;) Laut Process Explorer haben alle avp Prozesse keine Threads ;) Und wo nichts ist, kann man auch nichts abschießen :)

MfG
xZise

Nanu, ich dachte jede Executable hat mindestens einen Thread, den Hauptthread. Habe ich etwas verpasst?

@Topic: Vielleicht kann man ja im Ring0 Modus was hinbekommen... ^^

Christian Seehase 6. Okt 2007 14:39

Re: wie hartnaeckige anwendung killen?
 
Moin Zusammen,

Zitat:

Zitat von Luckie
...die muss man mit Administratorenrechten über die Diensteverwaltung beenden.

oder per Konselenprogramm Net

Net Stop zum Anhalten, Net start zum, Überraschung, Starten eines Dienstes.

o0o 6. Okt 2007 14:40

Re: wie hartnaeckige anwendung killen?
 
Zitat:

Naj Wink Laut Process Explorer haben alle avp Prozesse keine Threads Wink Und wo nichts ist, kann man auch nichts abschießen Smile
ehm naja eigendlich soll man doch jedes programm iwi schliessen koennen,...oder liege ich mit der annahme falsch?^^

btw ist es moeglich dass die zb die threads iwi verstecken?

o0o

Christian Seehase 6. Okt 2007 18:18

Re: wie hartnaeckige anwendung killen?
 
Moin oOo,

im Prinzip sollte sich jede Anwendung auch beenden lassen.
Sei es durch ein WM_CLOSE, wie Du es ja machst, oder, ggf., mittels WM_QUERYENDSESSION, um dem Programm ein Beendigen der Windows-Session vorzugaukeln, was es dann dazu veranlassen sollte sich zu beenden.
Bei Diensten musst Du sie halt über die entsprechenden API-Funktionen (als Einstieg: MSDN-Library durchsuchenOpenSCManager) stoppen.

Was ich prinzipiell vermeiden würde ist TerminateProcess, da der Prozess dann keine Möglichkeit mehr hat aufzuräumen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.
Seite 1 von 2  1 2      

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