AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wie anderes Programm beenden?

Ein Thema von Mazel · begonnen am 25. Dez 2006 · letzter Beitrag vom 1. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Mazel
Mazel

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

Wie anderes Programm beenden?

  Alt 25. Dez 2006, 09:35
Hallo,

ich habe ein Problem beim Beenden eines Programmes von welchen ich dem Pfad habe. Es geht dabei um WinTV-Nexus, weis nicht ob das jemand kennt. Mit folgenden Code beende ich das Programm, Problem ist aber, das der Ton noch zu hören ist obwohl das Programm als Prozess nicht weiterläuft:
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;
Kann mir da jemand helfen?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Wie anderes Programm beenden?

  Alt 25. Dez 2006, 11:13
Das Problem kenne ich von Spielen, welche nach dem Abschießen durch den Taskmanager noch immer ihre Musik abspielen. Nach ein paar Sekunden sollte das aber aufhören, oder läuft das bei dir ewig weiter? Ich kenne das besagte Programm nicht, bist du sicher das der Task den du beendest der einzige von diesem Programm ist? Vielleicht läuft da noch irgendwas von dem mit...
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

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

Re: Wie anderes Programm beenden?

  Alt 25. Dez 2006, 11:53
Moin,

also im Taskmanager ist es verschwunden, und der Ton läuft ewig weiter. Eventuell habe ich was übersehen. Das Programm ist nicht auf meinem Rechner daher kann ich im Moment nicht nachsehen.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
DIET3RIX

Registriert seit: 21. Feb 2006
Ort: Bonn
78 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Wie anderes Programm beenden?

  Alt 25. Dez 2006, 11:59
Ich kenne das Problem, von 'ner Pinacle Anwendung. Jedes ma, wenn die Anwendung abgestürzt ist, lief der Ton weiter. D.h. das du die Anwendung evtl. nicht Ordnungsgemäß beendest.
Dieter
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

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

Re: Wie anderes Programm beenden?

  Alt 25. Dez 2006, 12:17
Ich beende das Programm mit dem oben genannten Code. Den habe ich irgendwo aufgelesen

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

Re: Wie anderes Programm beenden?

  Alt 25. Dez 2006, 12:26
Versuch lieber an das Fenter ein WM_CLOSE zu schicken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

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

Re: Wie anderes Programm beenden?

  Alt 25. Dez 2006, 12:29
Hallo,

ja das werde ich versuchen. Ich habe aber an einigen Stellen gelesen, dass das nicht unbedingt klappen muss, was ich aber nicht verstehe. Weist du warum? Werde es auf jeden Fall heute noch versuchen.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Darkmorph

Registriert seit: 24. Mär 2003
37 Beiträge
 
Delphi 6 Professional
 
#8

Re: Wie anderes Programm beenden?

  Alt 29. Jan 2007, 10:55
Hi Mazel,

die Terminate-Funktion ist denkbar schlecht, da dll's die von dem Programm geladen wurden, die DLL z.B. die für den Ton zuständig ist, nicht über die Terminierung informiert werden. Sende stattdessen SendMessage(hProcess, WM_CLOSE,0,0)

mfg benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

Re: Wie anderes Programm beenden?

  Alt 29. Jan 2007, 10:59
An das Fenster, an das Fenster. WM_ steht nicht um sonst für WindowsMessage und nicht für ProcessMessage. Desweiteren können Prozesse gar keine Nachrichten empfangen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Wie anderes Programm beenden?

  Alt 31. Jan 2007, 23:35
Zitat von Luckie:
An das Fenster, an das Fenster. WM_ steht nicht um sonst für WindowsMessage und nicht für ProcessMessage. Desweiteren können Prozesse gar keine Nachrichten empfangen.
... aber Threads (und zwar auch ohne Fenster ).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf