เราสามารถปรับขนาด (ถ้าจำเป็น) หน้าต่างและจัดให้อยู่ตรงกลาง แต่เมื่อทำเช่นนั้นแฟลชของช่วงเวลาจะปรากฏขึ้นบนหน้าจอ สิ่งนี้ไม่ชัดเจนเกินไปผลลัพธ์ที่แท้จริงคือสิ่งที่คุณคาดหวัง: HTA จะอยู่ตรงกลางของหน้าจอ เราต้องการให้กระบวนการราบรื่นขึ้นเล็กน้อย แต่ในขณะนี้เราต้องใช้วิธีนี้
ด้านล่างเป็นรหัสสำหรับตัวอย่าง HTA (หากต้องการใช้กระบวนการนี้ให้คัดลอกรหัสวางลงใน Notepad และบันทึกไฟล์ด้วย. hta เป็นส่วนขยายไฟล์) ส่วนที่เรากังวล (และส่วนที่มีประโยชน์เพียงอย่างเดียว) คือรูทีนย่อย window_onload ซึ่งทำงานโดยอัตโนมัติเมื่อใดก็ตามที่ HTA โหลดหรืออัปเดต:
รหัสมีดังนี้:
<html>
<head>
<title> เป็นศูนย์กลาง HTA </title>
<HTA: แอปพลิเคชัน
id = "objhta"
ApplicationName = "Centered HTA"
Scroll = "ใช่"
singleinstance = "ใช่"
-
</head>
<ภาษาสคริปต์ = "vbscript">
sub window_onload
strcomputer = "."
ตั้งค่า objwmiservice = getObject ("winmgmts: //" & strcomputer & "/root/cimv2"))
ตั้งค่า colitems = objwmiservice.execQuery ("เลือก * จาก win32_desktopmonitor"))
สำหรับ objitem แต่ละคนใน colitems
inthorizontal = objitem.screenwidth
intvertical = objitem.Screenheight
ต่อไป
intleft = (inthorizontal - 800) / 2
inttop = (intvertical - 600) / 2
window.resizeto 800,600
window.moveto intleft, intop
สิ้นสุดย่อย
</script>
<body> </body>
</html>
หลังจากเริ่มต้น HTA นี้ - แฟลชด่วน - หน้าต่างจะถูกปรับเป็น 800x600 พิกเซลและจะอยู่ที่กึ่งกลางของหน้าจอ
คำถามที่ดี: จะเกิดอะไรขึ้นที่นี่? ก่อนอื่นเราใช้รหัส WMI มาตรฐานบางอย่างเพื่อเชื่อมต่อกับบริการ WMI บนคอมพิวเตอร์ท้องถิ่นจากนั้นสอบถามคลาส Win32_DesktopMonitor
สังเกต. เราคิดว่าคอมพิวเตอร์ของคุณมีจอภาพเดียวที่เชื่อมต่อ หากคุณมีจอภาพหลายจอคุณจะต้องเพิ่มประโยคที่เพื่อให้แน่ใจว่าคุณจะดึงความสูงของหน้าจอและความกว้างของจอภาพหลัก
หลังจากเชื่อมต่อกับคลาส WIN32_DESKTOPMONITOR เราจะใช้รหัสสองบรรทัดต่อไปนี้เพื่อกำหนดขนาดหน้าจอปัจจุบัน:
รหัสมีดังนี้:
inthorizontal = objitem.screenwidth
intvertical = objitem.Screenheight
เราได้ตัดสินใจล่วงหน้าว่าหน้าต่าง HTA มีความกว้าง 800 พิกเซลและความสูง 600 พิกเซล ดังนั้นเราสามารถใช้รหัสต่อไปนี้เพื่อคำนวณตำแหน่งที่เราจำเป็นต้องวางมุมบนซ้ายของหน้าต่าง:
รหัสมีดังนี้:
intleft = (inthorizontal - 800) / 2
inttop = (intvertical - 600) / 2
อย่างที่คุณเห็นเราจะได้รับความกว้างของหน้าจอ (เก็บไว้ในตัวแปร inthorizontal) และลบ 800 พิกเซล (มิติแนวนอนของหน้าต่าง HTA) สมมติว่าเรามีจอภาพที่มีความละเอียด 1024x768 1024 ลบ 800 และรับ 224: สิ่งนี้บอกเราว่าหน้าจอนั้นกว้างกว่าหน้าต่าง HTA ในการตั้งศูนย์หน้าต่างเราเพียงแค่ต้องตรวจสอบให้แน่ใจว่าแต่ละขอบคือ 112 พิกเซล นั่นคือเหตุผลที่ 224 (เช่น inthorizontal - 800) แบ่งออกเป็น 2
จากนั้นสำหรับความสูงของหน้าจอให้ทำซ้ำกระบวนการ สำหรับการแสดงตัวอย่างของเราเราได้รับ 768 - 600 (เช่น 168) จากนั้นหารด้วย 2 เพื่อรับ 84 พิกเซล (เช่นขนาดของขอบบนและล่างของหน้าต่าง)
ด้วยวิธีนี้เราต้องทำงานอีกสองงาน ก่อนอื่นให้ปรับหน้าต่างเป็น 800x600 พิกเซล: