يمكننا تغيير حجم (إذا لزم الأمر) على النافذة وركزها ، ولكن عند القيام بذلك ، يظهر وميض اللحظات على الشاشة. هذا ليس واضحًا جدًا ، والنتيجة الفعلية هي ما تتوقعه: سيكون HTA في وسط الشاشة. نريد أن تكون العملية أكثر سلاسة بعض الشيء ، ولكن في اللحظة التي يتعين علينا فيها استخدام هذه الطريقة.
فيما يلي رمز مثال HTA. (لتنفيذ هذه العملية ، ونسخ الكود ، والصقه في المفكرة ، وحفظ الملف باستخدام .hta امتداد الملف.) الجزء الذي نشعر بالقلق (والجزء الوحيد المفيد حقًا) هو الروتين الفرعي Window_onload ، الذي يتم تشغيله تلقائيًا كلما تم تحميل HTA أو تحديثه:
الرمز كما يلي:
<html>
<head>
<title> مركز HTA </title>
<hta: التطبيق
id = "objhta"
ApplicationName = "HTA المتمركز"
Scroll = "نعم"
SingleInstance = "نعم"
>
</head>
<script language = "vbscript">
sub window_onload
strcomputer = "."
تعيين OBJWMIService = getObject ("winmgmts: //" & stromputer & "/root/cimv2")
set colitems = objwmiservice.execquery ("SELECT * from 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 ، inttop
نهاية الفرعية
</script>
<body> </body>
</html>
بعد بدء تشغيل HTA هذا - فلاش سريع - سيتم ضبط النافذة على 800 × 600 بكسل وسيكون موجودًا في وسط الشاشة.
سؤال جيد: ماذا سيحدث هنا؟ نستخدم أولاً بعض رمز WMI القياسي للاتصال بخدمة WMI على الكمبيوتر المحلي ، ثم الاستعلام عن فئة Win32_DeskTopMonitor.
يلاحظ. نحن نفترض أن جهاز الكمبيوتر الخاص بك يحتوي على شاشة واحدة متصلة فقط. إذا كان لديك شاشات متعددة ، فسيتعين عليك إضافة جملة حيث ستتأكد من استرداد ارتفاع الشاشة وعرض الشاشة الرئيسية.
بعد الاتصال بفئة Win32_DeskTopMonitor ، سنستخدم سطرين من التعليمات البرمجية التالية لتحديد حجم الشاشة الحالي:
الرمز كما يلي:
inthorizontal = objitem.screenwidth
intveRtical = objitem.screenheight
لقد قررنا مقدمًا أن نافذة HTA هي 800 بكسل في العرض و 600 بكسل في الارتفاع. لذلك ، يمكننا استخدام الكود التالي لحساب المكان الذي نحتاج إلى وضع الزاوية اليسرى العلوية من النافذة:
الرمز كما يلي:
intleft = (inthorizontal - 800) / 2
inttop = (intvertical - 600) / 2
كما ترون ، سنحصل على عرض الشاشة (مخزّن في المتغير الداخلي) وطرح 800 بكسل (البعد الأفقي لنافذة HTA). لنفترض أن لدينا شاشة بدقة 1024 × 768. 1024 ناقص 800 واحصل على 224: هذا يخبرنا مدى أوسع الشاشة من نافذة HTA. لتوسيط النافذة ، نحتاج فقط إلى التأكد من أن كل حافة تبلغ 112 بكسل ؛ لهذا السبب يتم تقسيم 224 (أي Inthorizontal - 800) على 2.
ثم ، لارتفاع الشاشة ، كرر العملية. لعرض المثال لدينا ، نحصل على 768 - 600 (أي 168) ، ثم نقسم على 2 للحصول على 84 بكسل (أي حجم الحواف العلوية والسفلية للنافذة).
وبهذه الطريقة ، نحتاج إلى القيام بمهمتين أخريين. أولاً ، اضبط النافذة على 800 × 600 بكسل: