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_HIDE | Ukrywa okno i uaktywnia inne okno |
SW_MAXIMIZE | Maksymalizuje okno |
SW_MINIMIZE | Minimalizuje okno i uaktywnia następne w kolejności okno |
SW_RESTORE | Uaktywnia i wyświetla okno. Jeśli okno jest zminimalizowane lub zmaksymalizowane, zostanie przywrócone do pierwotnego rozmiaru i pozycji. |
SW_SHOW | Uaktywnia i wyświetla okno w bieżącym rozmiarze i pozycji |
SW_SHOWDEFAULT | Nadaje 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_SHOWMAXIMIZED | Uaktywnia okno i wyświetla je w stanie zmaksymalizowanym |
SW_SHOWMINIMIZED | Uaktywnia okno i wyświetla je w stanie zminimalizowanym |
SW_SHOWMINNOACTIVE | Wyświetla okno w stanie zminimalizowanym. Nie uaktywnia okna. |
SW_SHOWNA | Wyświetla okno w bieżącym stanie. Nie uaktywnia okna. |
SW_SHOWNOACTIVATE | Wyświetla okno w bieżącym rozmiarze i pozycji. Nie uaktywnia okna. |
SW_SHOWNORMAL | Uaktywnia i wyświetla okno. Jeśli okno jest zminimalizowane lub zmaksymalizowane, zostanie przywrócone do pierwotnego rozmiaru i pozycji. |
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:0 | zabrakło pamięci i/lub zasobów systemowych |
ERROR_FILE_NOT_FOUND | plik nie został znaleziony |
ERROR_PATH_NOT_FOUND | ścieżka nie została odnaleziona |
ERROR_BAD_FORMAT | plik wykonywalny jest nieprawidłowy |
SE_ERR_ACCESSDENIED | dostęp do pliku jest zabroniony |
SE_ERR_ASSOCINCOMPLETE | skojarzenie rozszerzenia jest niekompletne lub nieprawidłowe |
SE_ERR_DDEBUSY | zgłoszenie DDE nie mogło zostać przetworzone z powodu zajętości |
SE_ERR_DDEFAIL | wystąpił błąd DDE |
SE_ERR_DDETIMEOUT | czas oczekiwania minął przed przetworzeniem zgłoszenia DDE |
SE_ERR_DLLNOTFOUND | nie odnaleziono biblioteki DLL |
SE_ERR_FNF | nie odnaleziono pliku |
SE_ERR_NOASSOC | rozszerzenie nie zostało skojarzone z aplikacją |
SE_ERR_OOM | zabrakło pamięci |
SE_ERR_PNF | nie odnaleziono ścieżki |
SE_ERR_SHARE | nastą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ż