Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.189.193.172] |
|
Сообщ.
#1
,
|
|
|
Доброго дня!
Предыстория: есть у меня программа, которая делает скриншоты экрана или активного окна. Есть код, который скринит активное окно, на которое нажали мышкой (эмуляцией клавиш ALT+ Prt. Scr.). Но проблема в том, что мне приходится сначала нажать на кнопку в программе, которая запускает таймер (поставил выдержку в 1 сек.) и за это время нужно мышкой активировать любое окно Windows, после чего моя программа сделает захват окна. Но всё это слишком муторно и контрпродуктивно. Нужно: чтобы VB6 автоматически (после нажатия на кнопку) активировала последнее активное окно Windows и сделала его скрин путем Call keybd_event(VK_MENU, 0, 0, 0):Call keybd_event(VK_SNAPSHOT, 0, 0, 0) Как это реализовать, парни? На всякий случай поясню: юзер делает клик по кнопке, программа активирует последнее активное окно Windows и делает его захват. На этих делал я полный чайник, посему прошу снисходительней и побольше информации про код. Благодарствую! P.S. Прошу прощения, если аналогичная тема существовала, но поиск по форуму результатов мне не дал. |
Сообщ.
#2
,
|
|
|
Просто сверни окно программы - активируется предыдущее.
|
Сообщ.
#3
,
|
|
|
Цитата Akina @ Не получается почему-то. У меня тут мудренее ситуация: После нажатия по кнопке устанавливается me.height=0 и активируется таймер-2 с задержкой в 1сек (чтобы юзер успел активировать нужное для скрина окно вручную), который эмулирует нажатие alt+prtscr, после чего включается таймер-1, который активирует главную форму программы, в окне которого и отображается сделанный только ято скрин (при помощи clipboard.get data). Вот при всех этих случаях просто сворачивание окна моей проги не активирует окно Windows |
Сообщ.
#4
,
|
|
|
Свернуть - это minimize. А обнуление высоты - это из другой бочки.
|
Сообщ.
#5
,
|
|
|
К тому же у формы: BorderStyle=0
Добавлено Блин, вот же я олух! Я учтанавливал Height формы равным 0, чтобы само окно проги не попадало в скрин, но ведь можно было просто сделать Me.WindowState=0 и Me.Visible=False. После этого реально активируется последнее активное окно. Akina, огромная Вам благодарность. Уже в который раз выручаете советом |