![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
ИгнатьевАлексей |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
Друзья! Помогите, плиз!
Вот пытаюсь модифицировать код, который взял с нашего замечательного форума. Мне хотелось бы, чтобы прога сохраняла в .bmp активное окно, и чтобы прога не имела своего окна, т.е. только MainSub(). Вот беру код
И пытаюсь для начала его оформить в MainSub(). Получаю проблему в строке
Подскажите, пожалуйста, как можно обойти эту операцию. Что можно указать вместо Me? Заранее благодарен! -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
||||
|
|||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
чтобы сильно не заморачиватся - создай форму, загружай ее в память (но не показывай), рисуй на ней объект Image.
вот этот и используй -------------------- Я желаю всем Счастья! |
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
Спасибо за ответ! Именно это я и предполагал, ну ладно! Форма эта мешать особо не будет!
А можно еще вопрос, да простит меня модератор за это! Как можно "обрезать" получившуюся картинку? После строки с функцией BitBlt я получаю почти то, что нужно, но нужное мне (активное) окно как правило меньше, чем дектоп, и я получаю ненужную часть серого цвета. Можно ли убрать его? Заранее благодарен! -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Зачем так сложно?
Вот. У меня всё работает...
Добавлено @ 15:55 А для того, чтобы "сфотографировать" только активное окно необходимо послать не {PrintScreen}, а {ALT}+{PrintScreen} |
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
Спасибо, дорогой mihanik, но дело в том, что на данном компе (Винда 2000) почему-то не работает Clipboard.GetData. "Не могу мол сделать это" - комп говорит! В буфер инфу забирает - я проверял, а GetData сделать не может!
Может кто знает, почему такое может быть? На этом компе установлен специальный софт. Это вообще операторская станция. Подозреваю, что при установке софта что-то обрезается! Бывает такое? Вот, mihanik, я и ищу другие пути! А вот вышеуказанный код работает, да вот подправить кое что надо и не получается... Это сообщение отредактировал(а) ИгнатьевАлексей - 27.10.2006, 16:00 -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Попробуй вот так...
|
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Вы изначально получаете контекст Десктопа, а нужно Активного Окна.
Т.е. Апи GetDC нужно заменить на GetCurrentWindowDC (или как-то подобно, не помню) -------------------- Я желаю всем Счастья! |
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
mihanik, я делал так
Но попробую и по-твоему в скором времени. Спасибо! Naghual, Спасибо! Попробую завтра! -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
ИгнатьевАлексей, по большому счёту - это видоизменённый мой способ.
![]()
Что , в принципе, ты и сделал. ![]() 1. Прижал Альт - keybd_event NIM_ALT, 0, 0, 0 2. Нажал принтскрин - keybd_event VK_SNAPSHOT, 0, 0, 0 3. Отжал Альт - keybd_event NIM_ALT, 0, KEYEVENTF_KEYUP, 0 И, кроме того, ты не использовал промежуточную переменную. Согласен? ![]() |
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
mihanik,
![]() ![]() Смысл моего к тебе последнего обращения и заключался в предположении: может ли промежуточная переменная с волшебным названием Pict что то изменить? -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
По-большому счёту, - нет. Едиственное замечание. Мой способ срабатывает на "быстрых" машинах. На медленных же происходит вот что. Ты "фотографируешь" экран. Т.к. машина медленная, то этот процесс должен занимать некоторое время. В это время машина начинает пытаться сфотографированный образ экрана запихнуть в файл, что ей, естесственно, не удаётся по причине того, что образ в это время только-только формируется. И вот тут ты правильно вставил DoEvents после команды PrintScreen. Т.е. Щи отдельно, мухи отдельно. ![]() Сначала, мол, сфотографируй, а уж потом пиши в файл. Молодец! (Но и я молодец, что придумал более простой способ... ![]() |
|||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
mihanik, мухи-то отдельно - это верно, да только код то этот не работает на нужной мне машине, вот беда!
Но тучи расступились! Я пошел в местную библиотеку и на свое удивление увидел там неплохой технический отдел с неплохой подборочкой книжек по программированию. Там нашел прекрасную книжечку про VB и VBA из серии "Для профессионалов" и на ее волшебных страницах нашел почти готовый код! Немного модификации - и счастье привалило..... Так что всем спасибо за помощь!!! -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
||||
|
||||
ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: нет Всего: 3 |
Нет проблем
Но это уже после моей "модификации", исходник сейчас дома и прислать не могу. Кстати, к книге прилагается диск с очень интересными семпликами. Книга называется "VB-6 и VBA", один из авторов Петроциус (сорри за невежество, если неверно написал, пишу по памяти). Это сообщение отредактировал(а) ИгнатьевАлексей - 1.11.2006, 11:49 -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Наверное Евангелос Петрусос ? А за пример спасибо!!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |