Autor Beitrag
schelle
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 05.03.05 20:16 
Hallo zusammen

Ich habe folgendes Problem. Bei mir läuft ein lokaler Apache und der startet zwei gleichnamige Prozesse. Also zwei mal Apache exe im Task-Manager. Jetzt hab ich mir ein kleines Programm gebaut um Apache auf Knopfdruck wieder zu beenden. Geht auch nur mit dem Nachteil das man den Knopf zweimal drücken muss um beide Apaches auszuschalten. Ich benutze folgende Funktion die ich mit einem Button aufrufe.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
uses
   ShellAPI, TLHelp32;

function KillTask(const AExeName: string): boolean;
var
  p: TProcessEntry32;
  h: THandle;
begin
  Result := false;
  p.dwSize := SizeOf(p);
  h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
  try
    if Process32First(h, p) then
      repeat
        if AnsiLowerCase(p.szExeFile) = AnsiLowerCase(AExeName) then
          Result := TerminateProcess(OpenProcess(Process_Terminate,
                                                 false,
                                                 p.th32ProcessID),
                                     0);
      until (not Process32Next(h, p)) or Result;
  finally
    CloseHandle(h);
  end;
end;


Wie krieg ich die dazu beide Apaches zu beenden oder muss die Funktion anders aussehen?

Gruß, Schelle

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mo 07.03.2005 um 01:25
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Sa 05.03.05 20:21 
Auch wenn es bei deinem Problem nicht weiterhilft: Bei meinem Apache Server war ein SysTray-Programm dabei, mit dem man die einzelnen Services starten/beenden kann. Vielleicht neue Software installieren?

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
schelle Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 05.03.05 21:56 
Hi

Ja klar. ApacheMonitor. Hab ich schon auch. Aber ich möchte Apache, Mysql usw über eine eigene Oberfläche bzw ein eigenes Programm starten und beenden. Ein bissle aus Bequemlichkeit..... Und außerdem muss das doch irgendwie hinzukriegen sein.

Mein Aufruf für die Funktion ist übrigens

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button2Click(Sender: TObject);
begin
  if not KillTask('apache.exe'then
    Showmessage('Prozess konnte nicht beendet werden.');
end;


Habs schon mit allen Arten von Schleifen probiert aber irgendwie geht nix.

Schelle

Moderiert von user profile iconAXMD: Code- durch Delphi-Tags ersetzt.
schelle Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 06.03.05 10:12 
Titel: Oh man...
Hat sich erledigt. War wohl zu dämlich....

Nu gehts. Trotzdem Danke