> TerminateProcess(MyHWND, 0);
Virker ikke.
Jeg tog fejl. Det er ikke en HWND, men en HINSTANCE-integer man får som
resultat af en ShellExecute. Iøvrigt kan jeg se at resultatet altid er 42 i
mit program, men jeg ved ikke hvordan jeg kan bruge det.
Jeg har stillet spørgsmålet i Eksperten
http://www.eksperten.dk/spm/78660 :
<snip>
Nu er det ikke det samme dokument jeg vil åbne hver gang, og heller ikke det
samme program.
Den løsning jeg har fundet er at bruge EnumWindows() og så lede efter
dokumentets navn i titlen på alle vinduer, hvorefter jeg lukker det som
Ziron foreslog. MEN hvis dokumentets navn ikke står i titlen virker det jo
ikke.
Kan resultatet fra en ShellExecute overhovedet ikke bruges til noget som
helst??? Det er en integer-værdi som kaldes HINSTANCE. Her er hvad Win32
Programmers Reference siger om ShellExecute:
"If the function succeeds, the return value is the instance handle of the
application that was run, or the handle of a dynamic data exchange (DDE)
server application.
If the function fails, the return value is an error value that is less than
or equal to 32"
Burde have et formål...
</snip>
> > mitbillede.bmp åbnes i MSPaint :
> > var
> > MyHWND : HWND;
> > begin
> > MyHWND := ShellExecute(0, nil, 'C:\mitbillede.bmp', nil, nil, 0);
> > ...
> > //Senere vil jeg gerne kunne lukke programmet (eller blot dokumentet),
men
> > følgende virker ikke :
> > ...
> > PostMessage(MyHWND, WM_QUIT, 0, 0);
> > end;