AGB  ·  Datenschutz  ·  Impressum  







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

Task Killen in Delphi?

Ein Thema von delpher · begonnen am 17. Mär 2004 · letzter Beitrag vom 19. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#1

Task Killen in Delphi?

  Alt 17. Mär 2004, 10:37
Hallo,


Weiss jemand ne effektive möglichkeit auch hartnäckige Tasks zu beenden???
Die normalen Codes sind zu schwach um manche Tasks zu beenden habe schon eingie möglichkeiten durch war aber keine wirklich effektive dabei!

Bin für jeden Tip Dankbar!
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#2

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 10:52
Liste doch mal die Möglichkeiten auf, die Du schon probiert hast ... dann könnten wir überlegen, was noch möglich wäre.
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#3

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 10:58
Kein Problem also das erste ist ne function die eigentlich gar nicht funktioniert zumindest nicht unter XP hier der code:

Delphi-Quellcode:
function KillTask(ExeFileName: string): Integer;
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(
                        OpenProcess(PROCESS_TERMINATE,
                                    BOOL(0),
                                    FProcessEntry32.th32ProcessID),
                                    0));
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;
Delphi-Quellcode:
procedure KillProcess(hWindowHandle: HWND);
var
  hprocessID: INTEGER;
  processHandle: THandle;
  DWResult: DWORD;
begin
  SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
    SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
  if isWindow(hWindowHandle) then
  begin
    GetWindowThreadProcessID(hWindowHandle, @hprocessID);
    if hprocessID <> 0 then
    begin
      processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
        False, hprocessID);
      if processHandle <> 0 then
      begin
        TerminateProcess(processHandle, 0);
        CloseHandle(ProcessHandle);
      end;
    end;
  end;
end;
So der zweite Code soll eigentlich unter XP funktionieren tut er aber nicht damit kann man nicht mal den IEXPLORER beenden ab und zu klappts dann wieder nicht ist allso alles nicht sehr zuverlässig!
Kann man nicht irgendwie die Tasks direkt aus dem Speicher löschen oder überschreiben???

[edit=Luckie]Delphi-Tags. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 12:43
In der Code-Lib findest du Code, wie man sich alle Prozesse auflistet und wie man einen beenden kann mit TerminateProcess.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#5

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 13:04
...also erstmal danke für deine Antwort habe ich schon getestet den code. Der funktioniert auch nicht immer zumindest nicht z.b bei kazaa oder emule usw dann kommt nähmlich immer die fehlermeldung "Systemfehler 6 Das Handle ist ungültig" Kennt wirklich keiner was womit man 100% den Prozess beenden kann???
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 13:08
Also bei mir hat mein Code bisher immer funktioniert und mit Kazaa geht es auch problemlos.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#7

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 13:12
Hmmm,

Haste denn auch Win XP weil wodran soll es sonst liegen?
Habe Win XP und haut nicht hin!

Der sagt mir immer Das Handle ist ungültig und beednet den Prozess nicht! Das einzigste was er beendet ist Internet Explorer. ansonsten nix
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 14:04
Also ich hab WinXP SP1 und bei mir geht Luckie's Code aus der Code-Lib einwandfrei!

Edit: Hmm, mache Prozesse haben bei mir auch ein ungültiges Handle.
  Mit Zitat antworten Zitat
delpher

Registriert seit: 12. Mär 2004
30 Beiträge
 
#9

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 16:38
Ja genau das meine ich ja mit dem Handle fehler weiss denn keiner wodran das liegen kann??
Oder vielleicht noch ne andere möglichkeit wie das klappen könnte, muss doch irgend ne möglichkeit geben!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Task Killen in Delphi?

  Alt 17. Mär 2004, 19:17
Kann es sein, dass der Prozess nicht in deinem Benutzerkontext läuft? Dann hast du auch kein Recht ihn zu beenden. Ist zum Beispiel bei Diensten so, die dir in der Prozessliste angezeigt werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 10:40 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