Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как можно запретить нажатие клавиши


Автор: denmoroz 18.2.2006, 19:10
Как можно запретить нажатие клавиши Print Screen во время выполнения моей программы? smile

Автор: MIX55 18.2.2006, 19:34
Цитата

В событиях, обрабатывающих нажатия клавишь в TForm, клавиша PrintScreen не обрабатывается. Однако проблему можно решить при помощи 'GetAsyncKeyState'. Функция GetAsyncKeyState определяет, когда клавиша была нажата или отпущена каждый раз, когда функция вызвана, а так же, когда клавиша была нажата после предыдущего вызова GetAsyncKeyState.

Событие OnIdle в TApplication как раз подходит для вызова этой API функции:



Код

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Application.OnIdle := AppIdle;
end;

procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);
begin
  if GetAsyncKeyState(VK_SNAPSHOT) <> 0 then
    Form1.Caption := 'PrintScreen нажата !';
  Done := True;
end;





Автор: denmoroz 19.2.2006, 18:55
MIX55, а как можно очистить буфер обмена?

Автор: MIX55 19.2.2006, 20:52
в Uses добавить Clipbrd
а по нажатию кнопки следующий код

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  Clipboard.Clear;
end;


Добавлено @ 20:52
Вообще то один пост один вопрос.

Если что пиши в PM

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)