Jak z poziomu delphi uruchomić inny program

AndRew

To jest sklejka z kilku postów z forum. Mam nadzieję, że będziesz wiedział(a), o co chodzi.

Sposób Rudy'ego:

```delphi WinExec('NazwaProga', SW_SHOW); ``` Gdzie: * pierwszy parametr to nazwa programu do uruchomienia * drugi parametr to sposób wyświetlania: * SW_SHOW - widoczny * SW_HIDE - ukryty (praca w tle)

WinExec jest jedynie pozostałością w celu zgodności z wcześniejszymi wersjami Windows, w rzeczywistości jest to teraz jedynie funkcja CreateProcess - Dryobates

Sposób Adama Kulikowskiego:

```delphi uses ShellAPI

ShellExecute(Handle, 'open', 'notepad.exe', nil, 'C:\Windows\system32', SW_SHOWNORMAL);
//lub...
ShellExecute(Handle, 'open', 'C:\Windows\system32\notepad.exe', nil, nil, SW_SHOWNORMAL);

Gdzie:
* pierwszy parametr to uchwyt okna, które wykonuje instrukcję
* drugi parametr to zadanie do wykonania:
 * edit
 * explore
 * find
 * open
 * print
* trzeci parametr to nazwa pliku (bez parametrów, można podać ścieżkę) lub np. strony internetowej do otwarcia
* czwarty parametr to parametry dla uruchamianego programu
* piąty parametr to ścieżka, w której program będzie wykonywany (może być inna niż rzeczywista)
* szósty parametr to sposób wyświetlania okna programu:
 * SW_HIDE - ukryty
 * SW_MAXIMIZE - maksymalizuje określone okno
 * SW_MINIMIZE - minimalizuje określone okno
 * SW_RESTORE - jeśli określone okno jest zminimalizowane albo zmaksymalizowane, przywraca normalny rozmiar i widoczność
 * SW_SHOWDEFAULT - ustawia domyślną widoczność
 * SW_SHOWMAXIMIZED - wyświetla okno zmaksymalizowane
 * SW_SHOWMINIMIZED - wyświetla okno zminimalizowane
 * SW_SHOWMINNOACTIVE - wyświetla okno zminimalizowane i aktywuje poprzednie okno
 * SW_SHOWNA - wyświetla okno z domyślnymi ustawieniami, ale zachowuje poprzednie okno aktywne
 * SW_SHOWNOACTIVE - wyświetla okno w najczęściej używanej pozycji i rozmiarze, zachowuje poprzednie okno aktywne
 * SW_SHOWNORMAL - wyświetla okno normalnie, jeśli będzie zminimalizowane albo zmaksymalizowane, Windows przywróci je. Ta flaga powinna być używana, jeśli okno jest otwierane pierwszy raz.
FAQ

9 komentarzy

Dobra już mam. Zamiast ściezki podajemy wskaźnik PChar(zmienna)
Gdyby komuś sie przydało
Pozdro

Witam, mam problem z otworzeniem pdf'a. Otórz kiedy podaje ścieżkę "na stałe" wszystko jest w porządku np: ShellExecute (Handle, 'open', 'c:\costam\nazwa.pdf', nil, nil, SW_SHOWNORMAL);
Problem zaczyna sie kiedy chce w miejsce parametru scieżki do pliku " 'c:\costam\nazwa.pdf' " Podać zmienną .
Chce zeby program otwierał mi jakieś różne pdf'y w zależności od tego, co wybierze urzytkownik w programie.
Mam nadziej,ze napisałm to dosyć zrozumiele :)
Pozrdrawiam

Delphi, jak otworzyć plik pdf ? [delphi, otwieranie pliku pdf]

Do otwarcia pliku zewnętrznego (txt, pdf), jeśli chcesz go otworzyć w jego domyślnym programem (np. Notatnik lub Adobe Reader), można użyć połączenia interfejs API ShellExecute

  1. w uses dodać ShellApi

  2. procedure TMasterMind04.InstructionsClick(Sender: TObject);
    begin

ShellExecute (Handle, 'open', 'c://ef90.pdf', nil, nil, SW_SHOWNORMAL);

end;

tutaj otwieranie idzie z menu ale może być z buttona itd.

heh to jest to czego szukałem długi czas :D

A czy dało by sie ten program co ma sie uruchomić skompilować jakoś z programem którym zrobiłem w delphi??

Dzięki wielkie! Przydało mi się bardzo :)

spoko... dzieki za kodzik...

zdarza się.. już poprawiłem :)

zjadłeś jedno ( w shellexecute :]