Delphi FAQ

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:

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:

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 :]