[delphi] App (via ShellExecute) destroy opvangen

Pagina: 1
Acties:
  • 64 views sinds 30-01-2008

  • Pantalaimon
  • Registratie: Mei 2004
  • Laatst online: 21-04 12:16
Misschien een beetje vage titel, maar dit is dus het probleem:

Ik ben bezig met een redelijk uitgebreide GUI, en deze voert om de zoveel tijd een .exe file uit die in een CMD box (geminimaliseerd) wordt gestart (met ShellExecute dus). Tijdens het uitvoeren van dit programma verandert de trayicon van mijn GUI zodat de gebruiker kan ziet dat er op dat moment geprocessed wordt.

Zodra de CMD box zich weer automatisch sluit, moet het icoontje in de systray ook weer terug veranderd worden. Het plaatsen en veranderen van het trayicoontje is geen probleem, alleen heb ik geen idee hoe ik moet zien wanneer mijn ShellExecute appje zichzelf weer sluit.

Delphi:
1
2
3
4
5
6
7
procedure TMainForm.UpdateTimerTimer(Sender: TObject);
begin
SetTrayIcon(1);
ShellExecute(Application.Handle, 'open', PChar('"'+AppLocation+'"'),
    PChar(CommandLineParameters.Text), nil, SW_SHOWMINNOACTIVE);
SetTrayIcon(0);
end;


Heel simpel is dit mijn code, bij elke UpdateTimer event wordt het icoon gewijzigd, start het programma zich geminimaliseerd, doet wat interessant spul en sluit zich weer. Omdat de code uiteraard niet wacht tot het CMD window zichzelf sluit, schiet het icoontje direct weer terug naar zijn oude staat.

Hoe vang ik dus af dat het gestartte programma zichzelf weer heeft gesloten? Krijgt de Application.Handle window een message, of moet ik (zeg, 10x per seconde) checken of het window nog open staat?

Think of me long enough to make a memory


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

In de meeste gevallen werkt dit: http://www.festra.com/eng/mtut01.htm

We adore chaos because we like to restore order - M.C. Escher


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Met ShellExecuteEx en WaitForSingleObject kan je prima wachten op een runnende applicatie. Zie ook http://www.festra.com/eng/mtut01.htm. Heeft me toch zeker 10 seconden gekost om dat te vinden met google (keywords: delphi, shellexecute, wait).

Volgende keer zelf wat beter zoeken? :)

Edit: LordLarry ;)

[ Voor 4% gewijzigd door Creepy op 28-11-2004 16:06 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.