Mengakses Sesi Alat Penginstal Saat Ini dari Dalam Tindakan Kustom

Tindakan kustom yang tidak disimpulkan yang memanggil pustaka atau skriptautan dinamis dapat mengakses penginstalan yang sedang berjalan untuk mengkueri atau mengubah atribut sesi penginstalan saat ini. Hanya satu objek Sesi yang dapat ada untuk setiap proses, dan skrip tindakan kustom tidak boleh mencoba membuat sesi lain.

Tindakan kustom hanya bisa menambahkan, memodifikasi, atau menghapus baris, kolom, atau tabel sementara dari database. Tindakan kustom tidak dapat mengubah data persisten dalam database, misalnya, data yang merupakan bagian dari database yang disimpan di disk.

Pustaka Tautan Dinamis

Untuk mengakses penginstalan yang sedang berjalan, tindakan kustom yang memanggil pustaka tautan dinamis (DLL) diteruskan handel jenis MSIHANDLE untuk sesi saat ini sebagai satu-satunya argumen ke titik entri DLL yang dinamai di kolom Target dari Tabel CustomAction. Karena alat penginstal menyediakan handel ini, tindakan kustom tidak boleh menutupnya, misalnya, untuk menerima handel hInstall dari alat penginstal , fungsi tindakan kustom dinyatakan sebagai berikut.

UINT __stdcall CustomAction(MSIHANDLE hInstall)

Untuk akses baca-saja ke database saat ini, dapatkan handel database dengan memanggil MsiGetActiveDatabase. Untuk informasi selengkapnya, lihat Mendapatkan Handel Database.

Skrip

Tindakan kustom yang ditulis dalam VBScript atau JScript dapat mengakses sesi penginstalan saat ini dengan menggunakan Objek Sesi. Alat penginstal membuat objek Sesi bernama "Sesi" yang mereferensikan penginstalan saat ini. Untuk akses baca-saja ke database saat ini, gunakan properti Database objek Sesi .

Karena skrip dijalankan dari konteks objek Sesi , tidak selalu diperlukan untuk sepenuhnya memenuhi syarat properti dan metode. Dalam contoh berikut, saat menggunakan VBScript, referensi Me dapat menggantikan objek Sesi , misalnya, tiga baris berikut ini setara.

Session.SetInstallLevel 1
Me.SetInstallLevel 1
SetInstallLevel 1

File yang Dapat Dieksekusi

Anda tidak dapat mengakses sesi penginstal saat ini dari tindakan kustom yang memanggil file yang dapat dieksekusi yang diluncurkan dengan baris perintah, misalnya, Tindakan Kustom Tipe 2 dan Tindakan Kustom Tipe 18.

Tindakan Kustom Eksekusi Yang Ditangguhkan

Anda tidak dapat mengakses sesi penginstal saat ini atau semua data properti dari tindakan kustom eksekusi yang ditangguhkan. Untuk informasi selengkapnya, lihat Mendapatkan Informasi Konteks untuk Tindakan Kustom Eksekusi yang Ditangguhkan.

Mengakses Database atau Sesi dari Dalam Tindakan Kustom