어떻게 하면 HTA 를 화면 중심 에 두 는 지(Win 32DesktopMonitor)

3677 단어 HTA화면 중심
창 크기 를 조정 하고 가운데 로 놓 을 수 있 지만,이렇게 하면 화면 에 순간적으로 반 짝 거 릴 수 있 습 니 다.이것 은 그다지 뚜렷 하지 않다.그 실제 결 과 는 바로 네가 기대 하 는 것 이다.HTA 는 화면 중심 에 있 을 것 이다.우 리 는 이 과정 이 좀 원활 해 지 기 를 바라 지만,지금 우 리 는 이 방법 을 사용 해 야 한다.다음은 HTA 예제 의 코드 입 니 다.(이 과정 을 수행 하려 면 이 코드 를 복사 하고 메모 장 에 붙 여 넣 은 다음.hta 를 파일 확장자 로 저장 하 십시오.)우리 가 걱정 하 는 부분(유일 하 게 유용 한 부분)은 WindowOnload 하위 루틴 은 HTA 가 불 러 오 거나 업 데 이 트 될 때마다 자동 으로 실 행 됩 니 다.

<html>
<head>
<title>Centered HTA</title>
<HTA:APPLICATION
ID="objHTA"
APPLICATIONNAME="Centered HTA"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<SCRIPT Language="VBScript">
Sub Window_Onload
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.resizeTo 800,600
window.moveTo intLeft, intTop
End Sub
</SCRIPT>
<body></body>
</html>
이 HTA-빠 른 반 짝 임 을 시작 하면-창 은 800 x600 픽 셀 로 조정 되 고 화면 중심 에 있 습 니 다.
좋 은 문제:여기 서 무슨 일이 일어 날 까요?우 리 는 먼저 표준 WMI 코드 를 사용 하여 로 컬 컴퓨터 에 연 결 된 WMI 서 비 스 를 사용 한 다음 에 Win 32 를 조회 합 니 다.Desktop Monitor 클래스.
주의우 리 는 당신 의 컴퓨터 가 모니터 한 대만 연결 되 었 다 고 가정 합 니 다.모니터 가 여러 대 있 으 면 메 인 모니터 의 화면 높이 와 너 비 를 검색 할 수 있 도록 WHERE 자 구 를 추가 해 야 합 니 다.
Win 32 에 연결Desktop Monitor 클래스 를 사용 하면 현재 화면의 크기 를 확인 하기 위해 다음 두 줄 의 코드 를 사용 할 것 입 니 다.

intHorizontal = objItem.ScreenWidth
intVertical = objItem.ScreenHeight
HTA 창의 폭 을 800 픽 셀,높이 는 600 픽 셀 로 미리 결 정 했 습 니 다.따라서 이 창의 왼쪽 상단 을 어디 에 두 어야 하 는 지 아래 코드 를 사용 하여 계산 할 수 있 습 니 다.

intLeft = (intHorizontal - 800) / 2
intTop = (intVertical - 600) / 2
보시 다시 피 화면 너비(intHorizontal 변수 에 저장)를 얻 고 800 픽 셀(HTA 창의 수평 크기)을 줄 입 니 다.해상도 가 1024 x768 인 모니터 가 있다 고 가정 합 니 다.1024 에서 800 을 빼 면 224:이것 은 우리 에 게 화면 이 HTA 창 보다 얼마나 넓 은 지 알려 준다.이 창 을 가운데 로 만 들 려 면 각각 112 픽 셀 을 확보 해 야 합 니 다.224(즉 intHorizontal C 800)를 2 로 나 눈 이유 다.
그리고 화면 높이 에 대해 서 는 이 과정 을 반복 합 니 다.우리 의 예제 디 스 플레이 에 대해 서 는 768 C 600(즉 168)을 얻 은 다음 에 2 로 나 누 어 84 픽 셀(즉 이 창 상하 의 크기)을 얻 었 다.
이렇게 해서 우 리 는 두 가지 일 을 더 해 야 한다.첫째,창 을 800 x600 픽 셀 로 조정 합 니 다.
window.resizeTo 800,600
둘째,상응하는 창 을 설치한다.이것 이 바로 우리 가 지금 해 야 할 일이 다.
window.moveTo intLeft, intTop
우리 가 해 야 할 모든 일 은 moveto 방법 을 호출 하고 HTA 창 을 이동 하여 왼쪽 상단 이 왼쪽 112 픽 셀,상단 84 픽 셀 의 위치 에 있 도록 하 는 것 입 니 다.
참고 로 우 리 는 resizeTo 방법 을 이 규칙 의 하단 근처에 두 어 교육 용 으로 제공 할 것 입 니 다.우 리 는 resizeTo 를 moveto 와 함께 이야기 하고 싶 습 니 다.그러나 창 을 조정 하여 서브루틴 을 시작 할 때 가 볍 고 뚜렷 하지 않 은 반 짝 임 이 있 습 니 다.

Sub 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
이것 은 큰 문제 가 아니 지만,약간의 도움 이 된다.우 리 는 계속 반 짝 임 을 없 애 는 방법 을 찾 을 것 이다.왜 이렇게 어려워 요?이상 적 인 상태 에서 HTA 창 을 조정 하고 이동 하기 전에 숨겨 집 니 다.이것 은 인터넷 익스플로러 로 실행 할 수 있 습 니 다.그러나 우 리 는 아직 HTA 를 사용 하여 이 조작 을 수행 하 는 방법 을 찾 지 못 했다.하지만 우 리 는 포기 한 적 이 없다.)

좋은 웹페이지 즐겨찾기