ウィンドウを変更して(必要に応じて)中心にすることができますが、そうするときは、画面に一瞬の瞬間が表示されます。これはそれほど明白ではありません。実際の結果はあなたが期待するものです。HTAは画面の中央にあります。プロセスを少しスムーズにしたいのですが、今のところこの方法を使用する必要があります。
以下は、HTAの例のコードです。 (このプロセスを実装するには、コードをコピーし、メモ帳に貼り付け、ファイルをファイル拡張機能として.htaで保存します)。
コードは次のとおりです。
<html>
<head>
<title>中央hta </title>
<HTA:アプリケーション
id = "objhta"
ApplicationName = "CENTERED HTA"
scroll = "yes"
singleInstance = "はい"
>
</head>
<スクリプト言語= "vbscript">
sub window_onload
strcomputer = "。"
objwmiservice = getobject( "winmgmts://"&strcomputer& "/root/cimv2")を設定します。
colitems = objwmiservice.execquery( "select * from win32_desktopmonitor")
コリテムの各objitemについて
inthorizontal = objitem.screenwidth
intvertical = objitem.screenheight
次
intleft =(inthorizontal -800) / 2
inttop =(intvertical -600) / 2
window.resizeto 800,600
window.moveto intleft、inttop
End Sub
</script>
<body> </body>
</html>
このHTA-クイックフラッシュを開始した後、ウィンドウは800x600ピクセルに調整され、画面の中央に配置されます。
良い質問:ここで何が起こるのでしょうか?まず、標準のWMIコードを使用してローカルコンピューターのWMIサービスに接続し、次にwin32_desktopmonitorクラスを照会します。
知らせ。コンピューターには1つのモニターが接続されていると想定しています。複数のモニターがある場合は、メインモニターの画面の高さと幅を取得するためにWhere句を追加する必要があります。
win32_desktopmonitorクラスに接続した後、次の2行のコードを使用して、現在の画面サイズを決定します。
コードは次のとおりです。
inthorizontal = objitem.screenwidth
intvertical = objitem.screenheight
HTAウィンドウの幅は800ピクセル、高さは600ピクセルであることを事前に決定しました。したがって、次のコードを使用して、ウィンドウの左上隅を配置する必要がある場所を計算できます。
コードは次のとおりです。
intleft =(inthorizontal -800) / 2
inttop =(intvertical -600) / 2
ご覧のとおり、画面の幅(内角変数に保存)を取得し、800ピクセル(HTAウィンドウの水平寸法)を減算します。 1024x768の解像度のモニターがあるとします。 1024マイナス800と取得224:これは、HTAウィンドウよりも画面がどれほど広いかを示しています。ウィンドウを中央に配置するには、各エッジが112ピクセルであることを確認する必要があります。だからこそ、224(つまり、Inthorizontal - 800)が2で分割されています。
次に、画面の高さについては、プロセスを繰り返します。表示の例では、768〜600(つまり168)を取得し、2で除算して84ピクセル(つまり、ウィンドウの上部と下のエッジのサイズ)を取得します。
このようにして、さらに2つのタスクを実行する必要があります。まず、ウィンドウを800x600ピクセルに調整します。