Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#13

Re: Externes von mir gestartes Programm beenden? Hilfe!

  Alt 9. Jan 2004, 10:16
Hallo firefighter,

ich habe mir Deinen Code einmal angesehen und konnte zwei Probleme entdecken:
  1. Null hat in Delphi im Zusammenhang mit Varianten (genauer OLE) eine besondere Bedeutung und ist nicht direkt vergleichbar mit der Konstante in C. Verwende beim Aufruf von PostMessage einfach den Aufruf PostMessage(AHandle, WM_CLOSE, 0, 0);
  2. Wie bereits vermutet, rufst Du Deine Funktion nicht mit der ProcessID sondern mit dem Handle des Prozesses auf. In der OH zu CreateProcess findest Du auch eine Reference auf die von Dir verwendete Struktur TProcessInformation (dort: PROCESS_INFORMATION). Zu diesem strukturierten Datentyp ist zu lesen:
    Zitat:
    hProcess
    Returns a handle to the newly created process. [..]
    Zu GetWindowThreadProcessId steht jedoch, wie bereits erwähnt:
    Zitat:
    lpdwProcessId
    Points to a 32-bit value that receives the process identifier. [..]
    Du vergleichst demnach, wie bereits vermutet, "Äpfel mit Birnen".
gruß, choose
  Mit Zitat antworten Zitat