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


Автор: Alkash 10.10.2004, 01:57
Как позволить юзеру, самому назначать любые горячие клавиши для выполнения того или иного действия?(и записать назначения в .cfg файл)?

Автор: bear 10.10.2004, 06:29
Обязательно в cfg, а ъарегистрировать недьзя? Есть у Архангельского такая программа.
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
var
h:hhook;

function Proc(

code:integer;
wParam:WPARAM;
lParam:LPARAM
):lresult;stdcall;
var c:array[0..255] of char;
nScan:integer;
begin
if (code>=0)and(teventmsg(pointer(lparam)^).message=wm_keydown) then begin
nScan:=hibyte((teventmsg(pointer(lparam)^).paramL));
nscan:=nscan shl 16;
GetKeyNameText(nScan,c,256);
form1.ListBox1.Items.Add©;
end;
result:=callnexthookex(h,code,wparam,lparam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
h:=setwindowshookex(WH_JOURNALRECORD,@Proc,hinstance,0);
caption:=inttostr(h);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
unhookwindowshookex(h);
end;


end.

Автор: Alkash 10.10.2004, 11:46
Да нет, нужно именно писать в .cfg файл, а из него уже читать то, себе установил пользователь(в смысле горячие клавиши) и выполнять по ним действия.

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