Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Включение и выключение клавиатуры

Советы » Клавиши » Включение и выключение клавиатуры

// используемые переменные
var

Dummy: integer = 0; OldKbHook: HHook = 0; implementation

function

KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall

; begin

if

code < 0 then

Result := CallNextHookEx(oldKbHook, code, wparam, lparam) else

Result := 1; end

; // включение клавы procedure

TForm1.KeyBoardOn(Sender: TObject); begin

if

OldKbHook <> 0 then

begin

UnHookWindowshookEx(OldKbHook); OldKbHook := 0; end

; SystemParametersInfo(SPI_SETFASTTASKSWITCH, 0, 0, 0); SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0); end

; // выключение клавы procedure

TForm1.KeyBoardOff(Sender: TObject); begin

SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @Dummy, 0); SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @Dummy, 0); OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0); end

;

Некоторые замечания по поводу этих процедур:

  • Если программу упаковать UPX-ом - клава не будет отключаться (причин не знаю).
  • В ДОС-окне клава будет работать (FAR, VC и т.п.) :(
  • Состояния клавиш NumLock,CapsLock,ScrollLock не отслеживаются и могут быть изменены.
  • Возможно EnableHardwareKeyboard более эффективен и прост, но я тоже, к сожалению, не знаю, как им пользоваться.
  • Если вместо WH_KEYBOARD поставить WH_MOUSE, то можно выключать таким образом мышь :-)

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com