어떻게 하면 HTA 를 화면 중심 에 두 는 지(Win 32DesktopMonitor)
<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 를 사용 하여 이 조작 을 수행 하 는 방법 을 찾 지 못 했다.하지만 우 리 는 포기 한 적 이 없다.)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
어떻게 하면 HTA 를 화면 중심 에 두 는 지(Win 32DesktopMonitor)창 크기 를 조정 하고 가운데 로 놓 을 수 있 지만,이렇게 하면 화면 에 순간적으로 반 짝 거 릴 수 있 습 니 다.이것 은 그다지 뚜렷 하지 않다.그 실제 결 과 는 바로 네가 기대 하 는 것 이다.HTA 는 화...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.