Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2010, 00:58   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
Смущение скриншот опреденённой части приложения(Меню, или кнопка.. и т.д)?

Всем привет=)
Интересная идея появилась..
Хочу реализовать снятие скришотов определенных частей приложения.. к примеру Меню, или кнопки..
Как такое реализовать? как определять? как выделять?
Человек_Борща вне форума Ответить с цитированием
Старый 01.05.2010, 09:36   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Опять
1. У вас только идея. Где наработки ?
2. Мы помогаем, мы не делаем (за спасибо в лучшем случае)
BOBAH13 вне форума Ответить с цитированием
Старый 01.05.2010, 09:46   #3
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

var B:TBitMap;
begin
B:=TBitMap.Create;
B.Height:=Memo.Height;
B.Width:=Memo.Width;
BitBlt(B.Canvas.Handle,0,0,B.Width, B.Height,GetDC(Memo.Handle), 0,0,SrcCopy);
B.SaveToFile('memo.bmp');
B.Free;
end;

Пример для Мемо
XerSon вне форума Ответить с цитированием
Старый 01.05.2010, 10:28   #4
bitSoft
Programming...
Форумчанин
 
Аватар для bitSoft
 
Регистрация: 13.03.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от XerSon Посмотреть сообщение
var B:TBitMap;
begin
B:=TBitMap.Create;
B.Height:=Memo.Height;
B.Width:=Memo.Width;
BitBlt(B.Canvas.Handle,0,0,B.Width, B.Height,GetDC(Memo.Handle), 0,0,SrcCopy);
B.SaveToFile('memo.bmp');
B.Free;
end;

Пример для Мемо

on imel vidu ne v memo at evo programe, a at drugoi programe,
Код:
With TProgrammersForum.Create do  AddNewTopic('Title','Content...');
bitSoft вне форума Ответить с цитированием
Старый 01.05.2010, 11:59   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Опять
1. У вас только идея. Где наработки ?
2. Мы помогаем, мы не делаем (за спасибо в лучшем случае)
Я не говорил про код..
Я спрашиваю как это реализовать?
Как отделить тоже меню от всей остальной программы, и сделать скрин?

взять фокус программы.. далее пересчитать на нем все компоненты(в этом проблемы 2: 1. А надо ли вообще? 2. Если надо то как?).. получать фокус компонента.. далее скриншот (Опять же вопрос как.. (Думаю передать хендл фокусированного элемента..))

Я не знаю как пересчитать все компоненты ДРУГОЙ программы.. ведь не все они называются TEdit Tmemo..

Последний раз редактировалось Человек_Борща; 01.05.2010 в 12:10.
Человек_Борща вне форума Ответить с цитированием
Старый 01.05.2010, 19:48   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

народ , поможет кто?
Человек_Борща вне форума Ответить с цитированием
Старый 02.05.2010, 14:02   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

проблему решил.
Человек_Борща вне форума Ответить с цитированием
Старый 02.05.2010, 14:05   #8
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Ну так поделись.
Здесь обычно так делают.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 02.05.2010, 14:56   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

вот таким вот образом получаю инфу "под курсором":
Код:
Procedure GetCurInf;
var
HWND:Thandle;   //Хендл класса и компонента под курсором мыши
P:Tpoint;        //указатель текушая позиция мыши
Inf: array [0..256] of Char;  //массив имен классов
begin
GetCursorPos(p);  //получаем позицию курсора и заносим в указатель
HWND:=WindowFromPoint(P); //ищем хендлы элементов под курсором
GetClassName(HWND, Inf, SizeOf(Inf)); //получаем имя класса под курсором заносим в массив
Form1.Label1.Caption:='Имя класса: '+strpas(Inf);    //выводим имя класса из массива и показываем
Form1.Label2.Caption:='Хендл: '+IntToStr(HWND);       //поазываем хендл класса
GetWindowText(HWND,inf,255);   //получаем текст на компоненте зависящем от класса
Form1.Label3.Caption:='Название: '+strpas(Inf);     //выводим текст компонента.
end;
Человек_Борща вне форума Ответить с цитированием
Старый 02.05.2010, 15:04   #10
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Человек_Борща, это можно поставить на ОнКлик и узнать инфу о компоненте на форме, а можно ли этим кодом узнать инфу постороннего окна, если да, то как?
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать принадлежит ли кнопка Системному меню программы? FaTaL Общие вопросы Delphi 11 24.10.2009 16:46
OnClick - правая или левая кнопка мыши Vadim_S Общие вопросы Delphi 8 16.09.2009 18:15
Как работать с меню другого приложения ? Stimer Win Api 1 17.12.2008 16:30
Добавление меню к окну приложения... MaTBeu Win Api 2 24.09.2008 20:23
Меню и нажатая кнопка! Dianis JavaScript, Ajax 1 04.07.2008 18:28