Форум — Ответы ( К темам )
? | Fred: Эмуляция нажатия кнопки PrintScreen (10-12-2002 06:15:20) |
Привет. Необходимо в программе изображение экрана послать в Clipboard. Так как это делается при нажатии клавиши PrintScreen. Буду очень благодарен, если кто подскажет как это сделать. С уважением. Fred. Vladivostok. | |
Skolotovich (10-12-2002 11:12:50) | |
на сколько я помню -- это дебри WinAPI советю искать хелпу по мессаджам винды там зто должно быть | |
Павел (10-12-2002 12:20:34) | |
Если Вам нужно получить копию экрана, и поместить ее в компонент TImage можете воспользоваться следующим кодом (поместите на форму 2 кнопки Button1 и Button2 и 2 компонента типа TImage: Im1 и Im2. По нажатию кнопки Button1 копируем изображение в Im1, по нажатию кнопки Button2 копируем изображение в Im2) (2 несколько разных способа — в способе 1 вы проще можете скопировать не весь рабочий стол, а только его часть, те координаты, которые укажите в BitBlt) void __fastcall TForm1::Button1Click(TObject *Sender) { HDC ScreenDC; ScreenDC = GetDC( 0 ); BitBlt( Im1->Canvas->Handle, 0, 0, Screen->Width, Screen->Height, ScreenDC, 0, 0, SRCCOPY); ReleaseDC( 0, ScreenDC ); } //--------------------------------------------------------------------------- // почти то-же самое, но чуть по-другому void __fastcall TForm1::Button2Click(TObject *Sender) { HDC ScreenDC; TCanvas* tc = new TCanvas; ScreenDC = GetDC( 0 ); tc->Handle = ScreenDC; Im2->Canvas->CopyRect(Im2->Canvas->ClipRect, tc, tc->ClipRect); ReleaseDC( 0, ScreenDC ); delete tc; } //--------------------------------------------------------------------------- введите, посмотрите как работает вроде никаких дебрей не наблюдается... | |
Владимир (10-12-2002 14:46:54) | |
Программно нажать любую клавишу, например PrintScreen Код клавиши PrintScreen — это VK_SNAPSHOT // нажимаем keybd_event(VK_SNAPSHOT, 0, 0, 0); // и например помещаем изображение в компонент Image1 Image1->Picture->Assign(Clipboard()); Image1->Refresh(); | |
Fred (10-12-2002 21:53:06) | |
Отлично ! Прекрасно сработало. Это как раз то что мне и нужно было. Всем большое спасибо за помощь. |