Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ada banyak situasi di mana AutoRun mungkin perlu dinonaktifkan sementara atau terus-menerus. Misalnya, AutoRun mungkin mengganggu operasi aplikasi yang sedang berjalan dan perlu dinonaktifkan selama durasi tersebut. Sistem menyediakan beberapa cara untuk menonaktifkan AutoRun.
- Menonaktifkan AutoRun Melalui Pemrograman
- Menggunakan Registri untuk Menonaktifkan AutoRun
- Jalankan Otomatis untuk Jenis Media Penyimpanan lainnya
Menonaktifkan AutoRun secara Pemrograman
Ada berbagai situasi di mana AutoRun mungkin perlu ditekan secara terprogram. Dua contohnya adalah:
- Aplikasi Anda memiliki program penyiapan yang mengharuskan pengguna memasukkan disk lain yang mungkin berisi file Autorun.inf.
- Selama operasi aplikasi Anda, pengguna mungkin perlu memasukkan disk lain yang mungkin berisi file Autorun.inf.
Dalam kedua kasus, Anda biasanya tidak ingin meluncurkan aplikasi lain saat aslinya sedang berlangsung.
Pengguna dapat secara manual menekan AutoRun dengan menahan tombol SHIFT saat mereka memasukkan CD-ROM. Namun, biasanya lebih baik menangani operasi ini secara terprogram daripada tergantung pada pengguna.
Dengan sistem yang memiliki Shell versi 4.70 dan yang lebih baru, Windows mengirim pesan "QueryCancelAutoPlay" ke jendela latar depan. Aplikasi Anda dapat merespons pesan ini untuk menekan AutoRun. Pendekatan ini digunakan oleh utilitas sistem seperti kotak dialog Buka umum untuk menonaktifkan AutoRun.
Fragmen kode berikut menggambarkan cara menyiapkan dan menangani pesan ini. Aplikasi Anda harus berjalan di jendela latar depan. Pertama, daftarkan "QueryCancelAutoPlay" sebagai pesan Windows:
uMessage = RegisterWindowMessage(TEXT("QueryCancelAutoPlay"));
Jendela aplikasi Anda harus berada di latar depan untuk menerima pesan ini. Handler pesan harus mengembalikan TRUE untuk membatalkan AutoRun dan FALSE untuk mengaktifkannya. Fragmen kode berikut mengilustrasikan cara menggunakan pesan ini untuk menonaktifkan AutoRun.
UINT g_uQueryCancelAutoPlay = 0;
LRESULT WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
...
default:
if (!g_uQueryCancelAutoPlay)
{
g_uQueryCancelAutoPlay = RegisterWindowMessage(TEXT("QueryCancelAutoPlay"));
}
if (uMsg && uMsg == g_uQueryCancelAutoPlay)
{
return TRUE; // Cancel AutoRun
}
}
}
Jika aplikasi Anda menggunakan kotak dialog dan perlu merespons pesan "QueryCancelAutoPlay", tidak dapat hanya mengembalikan TRUE atau FALSE. Sebagai gantinya, panggil SetWindowLong dengan nIndex diatur ke DWL_MSGRESULT. Atur parameter dwNewLong ke TRUE untuk membatalkan AutoRun, dan FALSE untuk mengaktifkannya. Misalnya, prosedur kotak dialog sampel berikut membatalkan AutoRun saat menerima pesan "QueryCancelAutoPlay".
UINT g_uQueryCancelAutoPlay = 0;
BOOL DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
...
default:
if (!g_uQueryCancelAutoPlay)
{
g_uQueryCancelAutoPlay = RegisterWindowMessage(TEXT("QueryCancelAutoPlay"));
}
if (uMsg == g_uQueryCancelAutoPlay)
{
SetWindowLong(hDlg, DWL_MSGRESULT, TRUE);
return 1;
}
}
Menggunakan Registri untuk Menonaktifkan AutoRun
Ada dua nilai registri yang dapat digunakan untuk menonaktifkan AutoRun secara terus-menerus: NoDriveAutoRun dan NoDriveTypeAutoRun. Nilai pertama menonaktifkan AutoRun untuk huruf drive yang ditentukan dan nilai kedua menonaktifkan AutoRun untuk jenis drive. Jika salah satu nilai ini diatur untuk menonaktifkan AutoRun untuk perangkat tertentu, nilai tersebut akan dinonaktifkan.
Nota
Nilai NoDriveAutoRun dan NoDriveTypeAutoRun hanya boleh dimodifikasi oleh administrator sistem untuk mengubah nilai seluruh sistem untuk tujuan pengujian atau administratif. Aplikasi tidak boleh mengubah nilai-nilai ini, karena tidak ada cara untuk memulihkannya dengan andal ke nilai aslinya.
Nilai NoDriveAutoRun menonaktifkan AutoRun untuk huruf drive tertentu. Ini adalah nilai data REG_DWORD, ditemukan di bawah kunci berikut:
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Policies
Explorer
Bit pertama dari nilai sesuai dengan drive A:, bit kedua sesuai dengan drive B:, dan seterusnya. Untuk menonaktifkan AutoRun untuk satu atau beberapa huruf kandar, atur bit yang sesuai. Misalnya, untuk menonaktifkan drive A: dan C: , atur NoDriveAutoRun ke 0x00000005
.
Nilai NoDriveTypeAutoRun menonaktifkan AutoRun untuk kelas drive. Ini adalah nilai data REG_DWORD atau REG_BINARY 4 byte, yang ditemukan di bawah kunci yang sama.
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Policies
Explorer
Dengan mengatur bit dari byte pertama nilai ini, berbagai drive dapat dikecualikan sehingga tidak bekerja dengan AutoRun.
Tabel berikut ini menunjukkan bit dan konstanta bitmask, yang dapat disetel dalam byte pertama NoDriveTypeAutoRun untuk menonaktifkan fitur AutoRun pada jenis drive tertentu. Anda harus memulai ulang Windows Explorer sebelum perubahan berlaku.
Nomor Bit | Konstanta Bitmask | Deskripsi |
---|---|---|
0x04 | DRIVE_LEPAS | Disk dapat dihapus dari drive (seperti disket). |
0x08 | DRIVE_TETAP | Diska tidak dapat dihapus dari kandar (hard disk). |
0x10 | DRIVE_REMOTE | Drive jaringan. |
0x20 | DRIVE_CDROM | CD-ROM drive. |
0x40 | DRIVE_RAMDISK | Disk RAM. |
Jalankan Otomatis untuk Jenis Media Penyimpanan Lainnya
AutoRun terutama ditujukan untuk distribusi aplikasi publik pada CD-ROM dan DVD-ROM, dan penggunaannya tidak dianjurkan untuk media penyimpanan lainnya. Namun, sering kali berguna untuk mengaktifkan AutoRun pada jenis media penyimpanan lain yang dapat dilepas. Fitur ini biasanya digunakan untuk menyederhanakan pemecahan masalah file AutoRun.inf. AutoRun hanya berfungsi pada perangkat penyimpanan yang dapat dilepas saat kriteria berikut terpenuhi:
- Perangkat harus memiliki driver yang kompatibel dengan AutoRun. Agar kompatibel dengan AutoRun, driver harus memberi tahu sistem bahwa disk telah dimasukkan dengan mengirim pesan WM_DEVICECHANGE.
- Direktori akar media yang disisipkan harus berisi file Autorun.inf.
- Perangkat tidak boleh menonaktifkan AutoRun melalui registri .
- Aplikasi latar depan belum menghentikan AutoRun.
Nota
Fitur ini tidak boleh digunakan untuk mendistribusikan aplikasi pada media yang dapat dilepas. Karena menerapkan AutoRun pada media yang dapat dilepas menyediakan cara mudah untuk menyebarkan virus komputer, pengguna harus curiga dengan disket yang didistribusikan secara publik yang berisi file Autorun.inf.
Biasanya, AutoRun dimulai secara otomatis, tetapi juga dapat dimulai secara manual. Jika perangkat memenuhi kriteria yang tercantum di atas, menu pintasan pada huruf drive akan menyertakan perintah AutoPlay. Untuk menjalankan AutoRun secara manual, klik kanan ikon drive dan pilih AutoPlay dari menu pintasan atau klik dua kali ikon drive. Jika driver tidak kompatibel dengan AutoRun, menu pintasan tidak akan memiliki item AutoPlay dan AutoRun tidak dapat dimulai.
Driver yang kompatibel dengan AutoRun disediakan dengan beberapa drive disk yang dapat dilepas, serta beberapa jenis media lain yang dapat dilepas seperti kartu CompactFlash. AutoRun juga berfungsi dengan drive jaringan yang dipetakan ke huruf kandar dengan Windows Explorer atau dipasang dengan Microsoft Management Console (MMC). Seperti halnya perangkat keras yang dipasang, drive jaringan yang dipasang harus memiliki file Autorun.inf di direktori akarnya, dan tidak boleh dinonaktifkan melalui registri .