program Project1;
uses
Forms,
Windows,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};
var
KeyState: TKeyBoardState;
{$R *.RES}begin
Application.Initialize;
GetKeyboardState(KeyState);
if ((KeyState[vk_Shift] and 128) <> 0) thenbegin{ here you could put some code to show the app as tray icon, ie
hier kann z.B ein Code eingefugt werden, um die Applikation als
Tray Icon anzuzeigen}end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Текст с кодом Delphi, предоставленный в этом разделе, определяет простое приложение, которое проверяет состояние клавиши Shift при запуске программы.
Вот разбивка того, что делает код:
Клауза uses импортирует различные единицы, включая Forms, Windows, Dialogs и Unit1 (который предполагается содержать основную форму).
Переменная KeyState типа TKeyBoardState объявляется.
В блоке begin программа инициализируется с помощью Application.Initialize.
Функция GetKeyboardState вызывается с аргументом KeyState. Эта функция получает текущее состояние клавиатуры.
Код затем проверяет, нажата ли клавиша Shift (т.е., если 128-й бит в значении KeyState установлен). Если это так, программа вступает в блок, где вы можете поместить код для отображения приложения в виде иконки в трее.
Альтернативное решение заключается в использовании функции GetAsyncKeyState вместо GetKeyboardState. Эта функция возвращает состояние указанной клавиши и может быть использована в одной строке:
if (GetAsyncKeyState(VK_SHIFT) < 0) then
begin
{ код для отображения иконки в трее }
end;
Обратите внимание, что в этом случае необходима проверка < 0, потому что GetAsyncKeyState возвращает подписанное значение: отрицательное для нажатия, положительное для отпускания и ноль для не изменившегося состояния.
В статье описывается программа на языке Delphi, которая определяет, был ли нажат клавиша Shift при старте приложения и если да, то выполняет определенные действия.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.