| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 файл, а из него уже читать то, себе установил пользователь(в смысле горячие клавиши) и выполнять по ним действия. |