HTAアプリケーションのサイズを変更する方法はありますか?
ありがとう
<script type="text/javascript">
window.resizeTo(300,290);
</script>
JavascriptとVBScriptの方法で、読み込み時にHTAのサイズを画面領域の1/4 (高さの半分、幅の半分)に設定し、中央に配置します-とを使用screen.availWidth
してscreen.availHeight
:
<SCRIPT LANGUAGE="javascript">
function Window_onLoad(){ // resize to quarter of screen area, centered
window.resizeTo(screen.availWidth/2,screen.availHeight/2);
window.moveTo(screen.availWidth/4,screen.availHeight/4);
}
window.onload=Window_onLoad;
</SCRIPT>
VBSScriptではWindow_onLoad
、HTAが起動する(または更新される)たびに、サブが自動的に呼び出されます。
...
</head>
<SCRIPT LANGUAGE="VBScript">
Sub Window_onLoad
' resize to quarter of screen area, centered
window.resizeTo screen.availWidth/2,screen.availHeight/2
window.moveTo screen.availWidth/4,screen.availHeight/4
End Sub
</SCRIPT>
<BODY>
...
私はそれをテストしたばかりで(古いラップトップでWin XP)、小さいサイズに縮小する前に最初の大きいウィンドウがすばやくちらつきますが、それほど悪くはありません。
ここにヒントがあります。htaを開いたときにHTAのサイズを変更/移動する必要がある場合は、resizeToとmoveToをHEADタグの直後の独自のスクリプトタグに配置します。そうすれば、サイズ変更/移動の結果として発生するフラッシュは表示されません。
<HTML>
<HEAD>
<SCRIPT type="text/vbscript" language="vbscript">
' Do the window sizing early so user doens't see the window move and resize
Window.resizeTo 330, 130
Call CenterWindow
Sub CenterWindow()
Dim x, y
With Window.Screen
x = (.AvailWidth - 330 ) \ 2
y = (.AvailHeight - 130 ) \ 2
End With
Window.MoveTo x, y
End Sub
</SCRIPT>
....
最小化するようにHTA属性windowstateを設定してみてください
windowstate="minimize"
次に、サイズ変更ルーチンが必要なサイズを設定し、ウィンドウを強制的に表示します。
最初にウィンドウにフォーカスを設定します。
window.focus()
window.resizeTo(500,500)
window.moveTo(screen.availWidth-500,0)