ShellExecute

Jojersztajner
// C/C++
HINSTANCE ShellExecute(
  HWND hwnd, 
  LPCTSTR lpOperation, 
  LPCTSTR lpFile, 
  LPCTSTR lpParameters,  
  LPCTSTR lpDirectory,  
  INT nShowCmd 
);
// Delphi
function ShellExecute(hwnd: HWnd; lpOperation, lpFile, lpParameters, lpDirectory: PChar; nShowCmd: Integer): HInstance;

Funkcja ShellExecute służy przede wszystkim do otwierania programów, dokumentów i stron internetowych.

Parametry
hwnd - uchwyt okna rodzica. Okno to będzie przechwytywać wszelkie okna komunikatów.

lpOperation - operacja do wykonania na pliku. Domyślną operacją jest open (otwieranie). Oto niektóre z możliwych wartości:
'open' - otwieranie (domyślne)
'print' - drukowanie
'explore' - eksploracja (tylko katalogi).
'install' - instalacja (pliki INF)

lpFile - nazwa pliku lub ścieżka internetowa do otwarcia. Parametr nie może przyjąć wartości NULL (nil).

lpParameters - parametry wiersza poleceń.

lpDirectory - katalog roboczy programu. Domyślny katalog to katalog aktualny.

nShowCmd - określa widoczność okna. Może być jedną z wartości:

SW_HIDEUkrywa okno i uaktywnia inne okno
SW_MAXIMIZEMaksymalizuje okno
SW_MINIMIZEMinimalizuje okno i uaktywnia następne w kolejności okno
SW_RESTOREUaktywnia i wyświetla okno. Jeśli okno jest zminimalizowane lub zmaksymalizowane, zostanie przywrócone do pierwotnego rozmiaru i pozycji.
SW_SHOWUaktywnia i wyświetla okno w bieżącym rozmiarze i pozycji
SW_SHOWDEFAULTNadaje oknu stan określony wartością pola wShowWindow struktury [[WinAPI/Struktury/STARTUPINFO]] przekazanej w wywołaniu funkcji [[WinAPI/CreateProcess]] przez program, który uruchomił aplikację.
SW_SHOWMAXIMIZEDUaktywnia okno i wyświetla je w stanie zmaksymalizowanym
SW_SHOWMINIMIZEDUaktywnia okno i wyświetla je w stanie zminimalizowanym
SW_SHOWMINNOACTIVEWyświetla okno w stanie zminimalizowanym. Nie uaktywnia okna.
SW_SHOWNAWyświetla okno w bieżącym stanie. Nie uaktywnia okna.
SW_SHOWNOACTIVATEWyświetla okno w bieżącym rozmiarze i pozycji. Nie uaktywnia okna.
SW_SHOWNORMALUaktywnia i wyświetla okno. Jeśli okno jest zminimalizowane lub zmaksymalizowane, zostanie przywrócone do pierwotnego rozmiaru i pozycji.
Jeśli lpFile określa dokument, parametr nShowCmd zostanie po prostu przekazany do skojarzonej aplikacji, która zadecyduje jak go obsłużyć.
Wartości zwracane
Zwrócona wartość nie ma nic wspólnego z jakimkolwiek uchwytem. Jedyne, co można z nią zrobić, to sprawdzić, czy jest większa od liczby 32. Jeśli nie wystąpił błąd, funkcja zwraca wartość większą od 32. Jeśli błąd wystąpił, funkcja zwraca wartość nie większą od 32. Oto lista możliwych wartości:
0zabrakło pamięci i/lub zasobów systemowych
ERROR_FILE_NOT_FOUNDplik nie został znaleziony
ERROR_PATH_NOT_FOUNDścieżka nie została odnaleziona
ERROR_BAD_FORMATplik wykonywalny jest nieprawidłowy
SE_ERR_ACCESSDENIEDdostęp do pliku jest zabroniony
SE_ERR_ASSOCINCOMPLETEskojarzenie rozszerzenia jest niekompletne lub nieprawidłowe
SE_ERR_DDEBUSYzgłoszenie DDE nie mogło zostać przetworzone z powodu zajętości
SE_ERR_DDEFAILwystąpił błąd DDE
SE_ERR_DDETIMEOUTczas oczekiwania minął przed przetworzeniem zgłoszenia DDE
SE_ERR_DLLNOTFOUNDnie odnaleziono biblioteki DLL
SE_ERR_FNFnie odnaleziono pliku
SE_ERR_NOASSOCrozszerzenie nie zostało skojarzone z aplikacją
SE_ERR_OOMzabrakło pamięci
SE_ERR_PNFnie odnaleziono ścieżki
SE_ERR_SHAREnastąpiło naruszenie zasad współużytkowania

Uwagi
Windows 95/98/Me: Wersja Unicode funkcji (ShellExecuteW) jest wspierana przez Warstwę Unicode (Microsoft Layer for Unicode) - MSLU. Aby użyć funkcji w wersji Unicode, należy dokonać pewnych zmian w aplikacji wedle wskazówek nakreślonych w Microsoft Layer for Unicode on Windows 95/98/Me Systems (eng)

Zobacz też

0 komentarzy