내 서버에서 특정 확인 대화 상자를 찾는 winforms 타이머가 있습니다 (메모리가 부족한 타사 응용 프로그램에서 확인을 클릭 한 다음 다시 시작합니다 - 주변에는 다른 작업이 없습니다). 따라서 원격 데스크톱과 서버를 원격 데스크톱 창이 활성화되어있을 때 (실제 원격 데스크톱 창이 활성화되어 있으며 클릭해야하는 확인 창이 아닙니다.) OK, 작동), 프로그램은 정상적으로 작동합니다. OK의 창을 찾은 다음 OK 버튼을 누릅니다. 원격 데스크톱이 없거나 원격 데스크톱 창이 활성화되지 않았거나 선택되어있는 경우 창을 찾고 확인 버튼을 찾았지만 확인 버튼을 클릭 할 수 없습니다. 이것에 대해WinAPI 확인을 클릭하십시오. 원격 데스크톱은 창이 활성화되어있을 때만 작동합니다.
Private Sub TimerCloseOK_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerCloseOK.Tick
Dim dialogBoxText As String = "My Program - Application Error"
Dim hwnd As IntPtr = FindWindow("#32770", dialogBoxText)
Dim WindowID As String = hwnd.ToString
Dim buttonTitle As String
buttonTitle = "OK"
Dim dialogButtonHandle As IntPtr = FindWindowEx(hwnd, IntPtr.Zero, "Button", "OK")
If Len(WindowID) > 0 And Integer.Parse(WindowID) <> 0 Then
'CLICK OK
SendMessage(dialogButtonHandle, BM_CLICK, 1, 0)
mbCounter = mbCounter + 1
Application.DoEvents()
lCount.Text = mbCounter
End If
End Sub
입력 잠금 및 대부분의 입력 메커니즘은 세션이 잠겨 있거나 로그 아웃 할 때 작동하지 않습니다. 나는 이것에 대한 소스가 없지만 ClickYes 및 다른 유틸리티로 발생하는 것을 보았습니다. – Deanna
부모에게 직접 BN_CLICKED 알림을 보냅니다. –