Итак, у меня есть код ниже, который нажимает кнопку, а затем захватывает экран. Но проблема в том, что он фиксирует то, что было на экране до того, как я нажал кнопку, потому что все это происходит так быстро в VBA. Поэтому я поместил оператор Application.Wait
до того, как он захватил экран, но это не помогло, и то же самое произошло. Если я поставлю оператор Application.Wait
перед Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
, то по какой-то причине он копирует и вставляет фактический код, а не снимает экран, что странно. Поэтому мне интересно, как я могу ждать, чтобы он захватывал экран после того, как у него есть шанс загрузить. Я включил только важный код. Я работаю с двумя экранами (мониторами), поэтому я взаимодействую с веб-страницей на другом экране.
Sub getTest()
Dim CurrentPosition As POINTAPI
Application.Wait (Now + TimeValue("0:00:02"))
Call GetCursorPos(CurrentPosition)
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
Call CopyScreen
End Sub
Sub CopyScreen()
Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="TBD"
ActiveWorkbook.Close
End Sub