Bagaimana cara memulai aplikasi dari HTA?
bertanya:
Halo, ahli skrip! Untuk HTA, adakah yang bisa menggantikan perintah wscript.shell? Saya perlu menjalankan beberapa aplikasi dan menentukan file yang akan dibuka.
- dl
menjawab:
Halo DL. Ya, kita tahu bahwa perintah semacam itu dapat digunakan dalam HTA dan dapat digunakan sebagai ganti perintah wscript. Namun, sebelum memperkenalkannya, kami harus mencatat bahwa Anda benar -benar dapat menggunakan objek WScript.shell di HTA. Ini adalah kebingungan umum: karena Anda tidak dapat menggunakan perintah tertentu di HTA (seperti wscript.echo dan wscript.sleep), orang berpikir Anda tidak dapat menggunakan perintah WSH di HTA.
Sebelum melanjutkan, ada pertanyaan lain: Mengapa Anda tidak bisa menggunakan wscript.echo dan wscript.sleep in hta? Artinya, metode ini adalah properti dari objek WScript, dan Anda tidak dapat membuat contoh objek WScript. Objek WScript dibuat secara otomatis dan hanya dibuat saat Anda menjalankan host skrip windows (mis. Wscript.exe atau cscript.exe). Justru karena inilah skrip berikut ini benar -benar valid:
Kodenya adalah sebagai berikut:
Wscript.echo "hei."
Perhatikan bahwa kami tidak membuat objek WScript, yang secara otomatis dibuat ketika kami memanggil Windows Script Host.
Tetapi ini terbatas pada objek WScript. Ada objek WSH lain yang dapat Anda buat, termasuk objek shell. Misalnya, berikut adalah HTA kecil sederhana yang membuat objek wscript.
Kodenya adalah sebagai berikut:
<Html>
<head>
<bahasa skrip = "vbscript">
Sub runprogram
Set Objshell = CreateObject ("WScript.Shell")
objshell.run "notepad.exe c: /scripts/test.txt"
Akhir sub
</script>
</head>
<body>
<Tombol OnClick = "RunProgram"> Jalankan Program </button> <p>
</body>
</html>
Seperti yang Anda lihat, ini hampir HTA termudah yang bisa Anda dapatkan: Ini hanya terdiri dari satu tombol dan subrutin yang disebut runprogram dijalankan saat diklik. Silakan lihat kode runprogram:
Kodenya adalah sebagai berikut:
Sub runprogram
Set Objshell = CreateObject ("WScript.Shell")
objshell.run "notepad.exe c: /scripts/test.txt"
Akhir sub
Itu saja: kami membuat instance dari objek wscript. Ini melewati satu parameter untuk dijalankan: Nama file yang dapat dieksekusi (notepad.exe) diikuti oleh jalur file yang ingin Anda buka. Hanya itu yang perlu kita lakukan.
Ngomong -ngomong, selama skrip dijalankan di HTA, tidak akan ada masalah. Jika Anda mencoba menjalankannya dalam file HTML (yaitu, file dengan ekstensi file .htm), kotak pesan muncul memperingatkan Anda bahwa kontrol ActiveX sedang mencoba dijalankan pada halaman. Anda harus mengklik Ya untuk mengizinkan subrutin membuat objek shell dan kemudian menjalankannya. Ini karena objek WSH dianggap "rasa tidak aman untuk skrip".
Catatan: Ya, ini kedengarannya agak aneh, dan saya benar -benar berpikir bahwa objek skrip tidak aman untuk skrip. Tapi ini karena Internet Explorer menggunakan hosting skrip yang berbeda dan model keamanan yang berbeda dari WSH. Untungnya, HTA menggunakan model keamanan yang berbeda dari Internet Explorer, yang berarti Anda tidak mengalami masalah ini saat membuat objek shell di dalam HTA.