VB 키보드 마우스 비동작 호출기 시도
나중에 Windows의 화면 보호 프로그램은 키보드 마우스가 동작이 없을 때 화면 보호에 들어가는 것이라고 생각하여 방향을 바꾸어 프로그램을 이런 형식으로 만들려고 했다. 키보드 마우스가 동작이 없고 시스템이 화면 보호에 들어간 다음에 시스템이 화면 보호 프로그램을 실행하는지 검사하고 실행하면 프로그램을 호출한다.이런 방식은 화면 보호 프로그램을 중개로 하여 키보드 마우스 동작을 검사하는 작업을 화면 보호 프로그램에 맡기는 것이다.SystemParametersInfo를 사용하면 화면 보호 정보를 얻을 수 있습니다.참조 코드는 다음과 같습니다.
'API :
Private Declare Function SystemParametersInfo _
Lib "user32" _
Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, _
ByVal uiParam As Long, _
pvParam As Any, _
ByVal fWInIni As Long) As Boolean
Private Const SPI_GETSCREENSAVEACTIVE As Long = &H10 '
Private Const SPI_GETSCREENSAVERRUNNING As Long = &H72 '
Private Sub Timer1_Timer()
Dim bRunning As Boolean ' ,
SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False ' API,bRunning
Debug.Print Time; " ="; bRunning ' :
End Sub
' , , :
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0, bActive, False 'bActive ( )
그런데 왜 제가 WIN7에서 디버깅을 하는지 모르겠어요. 시스템 파라미터 정보 SPI_GETSCREENSAVERRUNNING, 0, bRunning, False의 bRunning 형식 오류입니다. 그만둘 수 있습니다.
마지막으로 최종적으로 실현된 방안은 GetLast InputInfo 함수를 사용하여 시스템의 여가 시간을 얻는 것이다. 참고 코드는 다음과 같다.
Option Explicit
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type
Private Sub Form_Load()
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Dim lii As LASTINPUTINFO
lii.cbSize = Len(lii)
If GetLastInputInfo(lii) Then
If (GetTickCount - lii.dwTime) / 60000 >= 15 Then
Call MsgBox(" 15 , 3 , ", vbYesNo + vbExclamation + vbDefaultButton2, " ")
End If
End If
End Sub
위에서 말한 것이 바로 본문의 전체 내용입니다. 여러분이 좋아하시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SendKeys.Send()에서 확인란을 확인하는 Wazap그대로 타이틀대로 SendKeys.Send() 메소드를 사용해 체크 박스를 체크하는 방법이 됩니다. 업무에서 사용하고 있는 Windows Form의 어플리케이션의 조작을 자동화하고 싶다고 하는 이야기가 있어, 여러 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.