Kita dapat mengubah ukuran (jika perlu) jendela dan memusatkannya, tetapi ketika melakukannya, kilatan momen muncul di layar. Ini tidak terlalu jelas, hasil sebenarnya adalah apa yang Anda harapkan: HTA akan berada di tengah layar. Kami ingin prosesnya sedikit lebih halus, tetapi untuk saat ini kami harus menggunakan metode ini.
Di bawah ini adalah kode untuk contoh HTA. (Untuk mengimplementasikan proses ini, menyalin kode, menempelkannya ke Notepad, dan menyimpan file dengan .hta sebagai ekstensi file.) Bagian yang kita khawatirkan (dan satu -satunya bagian yang sangat berguna) adalah subrutin Window_onload, yang berjalan secara otomatis setiap kali HTA dimuat atau diperbarui:
Kodenya adalah sebagai berikut:
<Html>
<head>
<title> Pusat HTA </itement>
<HTA: Aplikasi
Id = "objhta"
ApplicationName = "HTA terpusat"
Gulir = "ya"
SingleInstance = "Ya"
>
</head>
<Bahasa skrip = "vbscript">
Sub window_onload
strcomputer = "."
Set ObjWMiService = getObject ("WinMgmts: //" & strcomputer & "/root/cimv2")
Set Colitems = ObjWMiservice.Execquery ("Pilih * dari Win32_desktopMonitor")
Untuk setiap objitem dalam kolitem
Inthorizontal = Objitem.Screenwidth
Intvertical = Objitem.ScreenHeight
Berikutnya
Intleft = (Inthorizontal - 800) / 2
Inttop = (Intvertical - 600) / 2
Window.Resizeto 800.600
Window.Moveto Intleft, Inttop
Akhir sub
</script>
<body> </body>
</html>
Setelah memulai HTA ini - Flash Cepat - Jendela akan disesuaikan dengan 800x600 piksel dan akan ditempatkan di tengah layar.
Pertanyaan bagus: Apa yang akan terjadi di sini? Kami pertama -tama menggunakan beberapa kode WMI standar untuk terhubung ke layanan WMI di komputer lokal, dan kemudian meminta kelas Win32_DesktopMonitor.
Melihat. Kami berasumsi bahwa komputer Anda hanya memiliki satu monitor yang terhubung. Jika Anda memiliki beberapa monitor, Anda harus menambahkan klausa di mana untuk memastikan Anda akan mengambil tinggi layar dan lebar monitor utama.
Setelah menghubungkan ke kelas Win32_desktopMonitor, kami akan menggunakan dua baris kode berikut untuk menentukan ukuran layar saat ini:
Kodenya adalah sebagai berikut:
Inthorizontal = Objitem.Screenwidth
Intvertical = Objitem.ScreenHeight
Kami telah memutuskan terlebih dahulu bahwa jendela HTA lebarnya 800 piksel dan tinggi 600 piksel. Oleh karena itu, kita dapat menggunakan kode berikut untuk menghitung di mana kita perlu menempatkan sudut kiri atas jendela:
Kodenya adalah sebagai berikut:
Intleft = (Inthorizontal - 800) / 2
Inttop = (Intvertical - 600) / 2
Seperti yang Anda lihat, kami akan mendapatkan lebar layar (disimpan dalam variabel inthorizontal) dan kurangi 800 piksel (dimensi horizontal jendela HTA). Misalkan kita memiliki monitor dengan resolusi 1024x768. 1024 minus 800 dan dapatkan 224: Ini memberi tahu kita seberapa lebar layar daripada jendela HTA. Untuk memusatkan jendela, kita hanya perlu memastikan setiap tepi adalah 112 piksel; Itu sebabnya 224 (mis. Inthorizontal - 800) dibagi dengan 2.
Kemudian, untuk tinggi layar, ulangi prosesnya. Untuk tampilan contoh kami, kami mendapatkan 768 - 600 (mis. 168), dan kemudian bagi dengan 2 untuk mendapatkan 84 piksel (mis. Ukuran tepi atas dan bawah jendela).
Dengan cara ini, kita perlu melakukan dua tugas lagi. Pertama, sesuaikan jendela ke 800x600 piksel: