Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

ICQ über eigenes Programm beenden

  Alt 19. Feb 2007, 18:30
Hallo,

ich möchte ICQ über mein eigenes, speziell für mich organisiertes, Programm beenden.
Dazu habe ich mit EnumWindows mir alle Fenster auflisten lassen um, da das Programm nur für mich sein soll, das jeweilige Fenster zu wählen um es mit WM_CLOSE zu schließen. Ich dachte das richtige Fenster sei 'ICQNUMMER', dies ist aber nur die Liste meiner Kontakte nicht aber die Anwendung. Ich habe es dann mit dem Fenster 'ICQ Lite' versucht, leider hat dies auch nicht geklappt. Daher ermittle ich nun immer den Prozess von ICQ. Nun könnte ich mit TerminateProcess den Prozess radikal beenden, was aber nicht mein Ziel ist.

Was schlagt ihr vor?

Hier der Code in dem ich den Prozess ermittle und je nach Bedingung den Prozess beenden möchte:
Delphi-Quellcode:
function GetProcess(Process: String; KillProcess: Boolean): Boolean;
var
  hProcSnap : THandle;
  pe32 : TProcessEntry32;

begin
 Result := False;
 hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
 If hProcSnap <> INVALID_HANDLE_VALUE then
  begin
   pe32.dwSize := SizeOf(ProcessEntry32);
   If Process32First(hProcSnap, pe32) then
    While Process32Next(hProcSnap, pe32) do
     begin
      If Pos(Process, LowerCase(pe32.szExeFile)) <> 0 then
       begin
        If KillProcess then
         begin
           ???
         end
        //If KillProcess then Result := TerminateProcess(OpenProcess(Process_Terminate, False, pe32.th32ProcessID), 0)
        Else Result := True;
        Break;
       end;
     end;
    CloseHandle(hProcSnap);
  end;
end;
Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat