Bagikan melalui


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

CoInitializeEx

IShellExecuteHook

Meluncurkan Aplikasi (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)

ShellExecute