PrintWindow - скрытое окно в Picturebox, 99% работает

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
giaber
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 14.01.2009 (Ср) 13:51

PrintWindow - скрытое окно в Picturebox, 99% работает

Сообщение giaber » 15.02.2015 (Вс) 18:38

Вот использую такой вариант для забора изображения чужого окна, всё прекрасно работает и даже неожиданно для меня берёт и полностью скрытые под другими окна. Но только именно то окно файрфокса, которое мне надо берётся странным образом - два три нажатия баттона - в Picture1 сплошной чёрный, а потом вдруг при очередном нажатии раз-и получаем изображение.
В общем помучил кнопку - получается что и с одного клика забирается изображение, просто в какие-то определённые моменты, что-то видимо там обновляется в окне? Кто-нибудь может подсказать выход? Может как-то принудительно обновлять это окно? послать ему како-то сообщение SendMessage- ем?

Код: Выделить всё
Private Declare Function PrintWindow Lib "User32.dll" (ByVal hwnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim Calc_hWnd As Long

Calc_hWnd = FindWindow(vbNullString, "Calculator")  ' Get Handle to windows calculator
PrintWindow Calc_hWnd, Picture1.hDC, 0 ' capture it
Picture1.Refresh

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

    TopList