Центриране на hta прозорец

Как да центрирам HTA прозорец, така че да е в центъра на екрана, независимо от разделителната способност на екрана на размера на HTA Имам това:

</head>
<script>
Sub DoResize 'Do not use Window_Onload
   window.resizeTo 800,600
   strComputer = "."
   Set objWMIService = GetObject("Winmgmts:\\" & strComputer & "\root\cimv2")
   Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor")
   For Each objItem in colItems
       intHorizontal = objItem.ScreenWidth
       intVertical = objItem.ScreenHeight
   Next
   intLeft = (intHorizontal - 800) / 2
   intTop = (intVertical - 600) / 2
   window.moveTo intLeft, intTop
End Sub
DoResize() 'Run the subroutine to position the containing window (your HTA dialog) before the body is rendered.
</script>
<body>

Но ако променя разделителната способност на екрана, това не работи и преоразмерява прозореца на HTA.

Въпрос: Как да преместя HTA ​​в центъра на екрана, независимо от размера на HTA на разделителната способност на екрана.


person 09stephenb    schedule 10.03.2014    source източник


Отговори (2)


Използването на WMI за това е малко пресилено. Вместо това можете да използвате обект screen:

window.resizeTo (800, 600);
window.moveTo((screen.width - 800) / 2, (screen.height - 600) / 2);

Ако искате да преоразмерите прозореца в началото, поставете редовете по-горе към (JS) script таг в секцията head, дори преди <hta: application> таг, или използвайте кода в манипулатор на събития или където имате нужда.

Ако искате да изключите височината на лентата на задачите извън зоната за центриране, можете да използвате screen.availHeight вместо screen.height.

person Teemu    schedule 10.03.2014
comment
Това обаче преоразмерява hta. - person 09stephenb; 11.03.2014
comment
Трябва да знаете размера на прозореца, не можете да центрирате прозорец с неизвестен размер... - person Teemu; 11.03.2014

person    schedule
comment
Моля, добавете обяснение как това решава въпроса. Например къде е грешката в кода. - person lepe; 27.02.2018
comment
Защо да променяте размера до някаква друга стойност, различна от въпроса? - person rollstuhlfahrer; 27.02.2018