Для переключения языка применяется вызов LoadKeyboardLayout:
var russian, latin: HKL;
russian:=LoadKeyboardLayout('00000419', 0);
latin:=LoadKeyboardLayout('00000409', 0); где то в программе
SetActiveKeyboardLayout(russian);
Прислал Igor Nikolaev aKa The Sprite.
Как отловить нажатия клавиш в системе
Для этого используется функция GetAsyncKeyState(KeyCode)
в качестве параметра используются коды клавиш(например A – 65).
GetAsyncKeyState возвращает ненулевое значение если во время ее вызова нажата указаная клавиша.
//----Этот пример отлавливает нажатие клавиши «A»
//Этот код необходимо поместить в процедуру обработки
//таймера с интервалом «1»
if getasynckeystate(65)<>0 then showmessage('A – pressed');
//----------
Прислал Igor Nikolaev aKa The Sprite.
Клавиша
с кодом #0
Delphi 1
В действительности она служит флагом проверки нажатия клавиши, по соглашению, код #0 означает, что никакой клавиши нажато не было. В некоторых случаях событие может активизировать передачу этого кода (например, прямым вызовом), или предок, возможно, уже обработал нажатие клавиши, и Key был установлен в #0.
Как из программы переключить раскладку клавиатуры?
Одной строкой
Nomadic отвечает:
A: ActivateKeyboardLayout. Учтите, что использование этой функции – плохой тон.
Модем
Как получить список установленных модемов в Win95/98?
Nomadic советует:
unit PortInfo;
interface
uses Windows, SysUtils, Classes, Registry;
function EnumModems: TStrings;
implementation
function EnumModems: TStrings;
var
R: TRegistry;
s: ShortString;
N: TStringList;
i: integer;
j: integer;
begin
Result:= TStringList.Create;
R:= TRegistry.Create;
try
with R do begin
RootKey:= HKEY_LOCAL_MACHINE;
if OpenKey('\System\CurrentControlSet\Services\Class\Modem', False) then