ShellExecute?

Tags:    delphi

hey jeg er ved at lave en app som skal kunne kalde en ekstern app, jeg ved godt hvordan man kalder den, men bagefter skal jeg have programmet til at vente med at fortsætte til den eksterne app har kørt, jeg bruger shellExecute til at starte min eksterne app

håber nogen vil hjælp

mvh Bj







Løsningen i C++ er at bruge CreateProcess til at starte programmet. Mon ikke det er ca det samme i delphi, se f.ex:

http://www.delphicorner.f9.co.uk/articles/wapi4.htm

Derved får man en handle til processen, som f.ex. kan bruges i et kald til GetExitCodeProcess, se f.ex:

http://www.swissdelphicenter.ch/torry/showcode.php?id=93



Løsningen i C++ er at bruge CreateProcess til at starte programmet. Mon ikke det er ca det samme i delphi, se f.ex:

http://www.delphicorner.f9.co.uk/articles/wapi4.htm

Derved får man en handle til processen, som f.ex. kan bruges i et kald til GetExitCodeProcess, se f.ex:

http://www.swissdelphicenter.ch/torry/showcode.php?id=93



joj eg har også fundet et kode eksempel, hvor man brugte den fremgangs måde der er beskrevet på den hjemmeside.

men med shellExecute kan man også give den et handle, mit spørgsmål var mere hvordan man kunnebruge dette handle til noget



I eksemplerne bruger de f.ex handlen til
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, Result);



I eksemplerne bruger de f.ex handlen til
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, Result);



jo jeg har set noget lignende, og har brugt det det virkede, men jeg forstod ikke hvad det var der skete, jeg har endnu ikke set et eksempel jeg synes der var ordentlig kommenteret, derfor tænkte jeg om der ikke var en anden måde at gøre det på, ShellExecute har jeg set ordentlig komenteret men ingen, måde at se hvornår, app'en lukker, og jeg forstår ikke den kode godt nok til at kunne kompinere de 2, ved du om der er et sted man kan finde det kode eksempel du har givet mig linket til, men hvor de enkelte operationer er komenteret

pft.





Du kan slå funktionerne op på msdn, f.ex:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getexitcodeprocess.asp

Her er syntax'en dog C/C++ men det burde være let at oversætte til delphi.

Jeg kender meget lidt til delphi.



hep hey så fik han sin create process til at virke, nu er problemet et andet, parametren der bestemmer hvordan programmet skal vises, standard er SW_SHOWNORMAL, men jeg vil ikke have vist den eksterne applikation, men jeg kan ikke få SE_HIDE til at virke




Oftest ignorerer programmer SW_xxx, det er programmerne selv der bestemmer om de vil laves hidden/maximized/...

Så du er nok nød til at minimere vinduet når du har oprettet det. Det bruger man SetWindowPos til.



t