Funzione ShellExecuteExA (shellapi.h)
Esegue un'operazione su un file specificato.
Sintassi
BOOL ShellExecuteExA(
[in, out] SHELLEXECUTEINFOA *pExecInfo
);
Parametri
[in, out] pExecInfo
Tipo: SHELLEXECUTEINFO*
Puntatore a una struttura SHELLEXECUTEINFO che contiene e riceve informazioni sull'applicazione in esecuzione.
Valore restituito
Tipo: bool
Restituisce TRUE in caso di esito positivo; in caso contrario, FALSE. Chiamare getLastError per informazioni estese sull'errore.
Osservazioni
Poiché ShellExecuteEx può delegare l'esecuzione alle estensioni shell (origini dati, gestori di menu di scelta rapida, implementazioni verbo) attivate tramite Component Object Model (COM), COM deve essere inizializzato prima di viene chiamato shellExecuteEx. Alcune estensioni della shell richiedono il tipo APARTMENT a thread singolo COM (STA). In tal caso, com deve essere inizializzato come illustrato di seguito:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
Esistono istanze in cui ShellExecuteEx non usa uno di questi tipi di estensione shell e tali istanze non richiedono l'inizializzazione di COM. Tuttavia, è consigliabile inizializzare sempre COM prima di usare questa funzione.
Quando le DLL vengono caricate nel processo, si acquisisce un blocco noto come blocco del caricatore . La funzione DllMain
Con più monitoraggi, se si specifica un HWND e si imposta il lpVerb membro della struttura SHELLEXECUTEINFO a cui punta lpExecInfo su "Properties", eventuali finestre create da ShellExecuteEx potrebbero non essere visualizzate nella posizione corretta.
Se la funzione ha esito positivo, imposta il membro
I valori di errore SE_ERR_XXX vengono forniti per la compatibilità con ShellExecute. Per recuperare informazioni sugli errori più accurate, usare GetLastError. Può restituire uno dei valori seguenti.
Errore | Descrizione |
---|---|
ERROR_FILE_NOT_FOUND | Impossibile trovare il file specificato. |
ERROR_PATH_NOT_FOUND | Impossibile trovare il percorso specificato. |
ERROR_DDE_FAIL | Transazione DDE (Dynamic Data Exchange) non riuscita. |
ERROR_NO_ASSOCIATION | Nessuna applicazione associata all'estensione del nome file specificata. |
ERROR_ACCESS_DENIED | L'accesso al file specificato viene negato. |
ERROR_DLL_NOT_FOUND | Non è possibile trovare uno dei file di libreria necessari per eseguire l'applicazione. |
ERROR_CANCELLED | La funzione ha richiesto all'utente informazioni aggiuntive, ma l'utente ha annullato la richiesta. |
ERROR_NOT_ENOUGH_MEMORY | Memoria insufficiente per eseguire l'azione specificata. |
ERROR_SHARING_VIOLATION | Si è verificata una violazione di condivisione. |
Apertura di elementi da un URL È possibile registrare l'applicazione per l'attivazione quando gli URL passati. È anche possibile specificare i protocolli supportati dall'applicazione. Per altre informazioni, vedi registrazione dell'applicazione
Supporto della catena di siti A partire da Windows 8, è possibile fornire un puntatore della catena di siti alla funzione ShellExecuteEx per supportare l'attivazione degli elementi con i servizi di tale sito. Per altre informazioni, vedere Avvio di applicazioni (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO).
Nota
L'intestazione shellapi.h definisce ShellExecuteEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
shellapi.h |
libreria |
Shell32.lib |
dll | Shell32.dll (versione 3.51 o successiva) |
Vedere anche
avvio di applicazioni (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)