Programowanie w języku Delphi » FAQ

Jak z poziomu delphi uruchomić inny program

  • 2012-04-28 22:10
  • 7 komentarzy
  • 2479 odsłon
  • Oceń ten tekst jako pierwszy
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.

7 komentarzy

InsertFn 2009-10-12 03:16

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.

Zeelof 2008-07-02 10:17

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

djkolo 2006-02-11 21:44

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

salat25 2006-01-28 13:53

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

KuBa 2004-08-28 22:59

spoko... dzieki za kodzik...

AndRew 2003-04-15 18:46

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

Drajwer 2003-04-15 18:00

zjadłeś jedno ( w shellexecute :]