Fungsi ShellExecuteExA (shellapi.h)
Melakukan operasi pada file tertentu.
Sintaks
BOOL ShellExecuteExA(
[in, out] SHELLEXECUTEINFOA *pExecInfo
);
Parameter
[in, out] pExecInfo
Jenis: SHELLEXECUTEINFO*
Pointer ke struktur SHELLEXECUTEINFO yang berisi dan menerima informasi tentang aplikasi yang sedang dijalankan.
Menampilkan nilai
Jenis: BOOL
Mengembalikan TRUE jika berhasil; jika tidak, FALSE. Panggil GetLastError untuk informasi kesalahan yang diperluas.
Keterangan
Karena ShellExecuteEx dapat mendelegasikan eksekusi ke ekstensi Shell (sumber data, penangan menu konteks, implementasi kata kerja) yang diaktifkan menggunakan Model Objek Komponen (COM), COM harus diinisialisasi sebelum ShellExecuteEx dipanggil. Beberapa ekstensi Shell memerlukan jenis COM single-threaded apartment (STA). Dalam hal ini, COM harus diinisialisasi seperti yang ditunjukkan di sini:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
Ada instans di mana ShellExecuteEx tidak menggunakan salah satu jenis ekstensi Shell ini dan instans tersebut tidak akan mengharuskan COM untuk diinisialisasi sama sekali. Meskipun demikian, ada baiknya untuk selalu menginisialisasi COM sebelum menggunakan fungsi ini.
Ketika DLL dimuat ke dalam proses Anda, Anda memperoleh kunci yang dikenal sebagai kunci loader. Fungsi DllMain selalu dijalankan di bawah kunci loader. Penting bahwa Anda tidak memanggil ShellExecuteEx saat Anda memegang kunci loader. Karena ShellExecuteEx dapat diperluas, Anda dapat memuat kode yang tidak berfungsi dengan baik di hadapan kunci loader, mempertaruhkan kebuntuan dan oleh karena itu utas yang tidak responsif.
Dengan beberapa monitor, jika Anda menentukan HWND dan mengatur anggota lpVerb dari struktur SHELLEXECUTEINFO yang diarahkan oleh lpExecInfo ke "Properties", jendela apa pun yang dibuat oleh ShellExecuteEx mungkin tidak muncul di posisi yang benar.
Jika fungsi berhasil, fungsi ini menetapkan anggota hInstApp dari struktur SHELLEXECUTEINFO ke nilai yang lebih besar dari 32. Jika fungsi gagal, hInstApp diatur ke nilai kesalahan SE_ERR_XXX yang paling menunjukkan penyebab kegagalan. Meskipun hInstApp dinyatakan sebagai HINSTANCE untuk kompatibilitas dengan aplikasi Windows 16-bit, itu bukan HINSTANCE yang sebenarnya. Ini hanya dapat ditransmisikan ke int dan hanya dapat dibandingkan dengan nilai 32 atau kode kesalahan SE_ERR_XXX.
Nilai kesalahan SE_ERR_XXX disediakan untuk kompatibilitas dengan ShellExecute. Untuk mengambil informasi kesalahan yang lebih akurat, gunakan GetLastError. Ini dapat mengembalikan salah satu nilai berikut.
Kesalahan | Deskripsi |
---|---|
ERROR_FILE_NOT_FOUND | File yang ditentukan tidak ditemukan. |
ERROR_PATH_NOT_FOUND | Jalur yang ditentukan tidak ditemukan. |
ERROR_DDE_FAIL | Transaksi Dynamic Data Exchange (DDE) gagal. |
ERROR_NO_ASSOCIATION | Tidak ada aplikasi yang terkait dengan ekstensi nama file yang ditentukan. |
ERROR_ACCESS_DENIED | Akses ke file yang ditentukan ditolak. |
ERROR_DLL_NOT_FOUND | Salah satu file pustaka yang diperlukan untuk menjalankan aplikasi tidak dapat ditemukan. |
ERROR_CANCELLED | Fungsi meminta informasi tambahan kepada pengguna, tetapi pengguna membatalkan permintaan. |
ERROR_NOT_ENOUGH_MEMORY | Memori tidak cukup untuk melakukan tindakan yang ditentukan. |
ERROR_SHARING_VIOLATION | Terjadi pelanggaran berbagi. |
Membuka item dari URL Anda dapat mendaftarkan aplikasi untuk diaktifkan saat URL yang diteruskan. Anda juga dapat menentukan protokol mana yang didukung aplikasi Anda. Lihat Pendaftaran Aplikasi untuk informasi selengkapnya.
Dukungan rantai situs Pada Windows 8, Anda dapat menyediakan penunjuk rantai situs ke fungsi ShellExecuteEx untuk mendukung aktivasi item dengan layanan dari situs tersebut. Lihat Meluncurkan Aplikasi (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO) untuk informasi selengkapnya.
Catatan
Header shellapi.h mendefinisikan ShellExecuteEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | shellapi.h |
Pustaka | Shell32.lib |
DLL | Shell32.dll (versi 3.51 atau yang lebih baru) |
Lihat juga
Meluncurkan Aplikasi (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)