Enter = Tab
|
Пользователь Сообщения: 84 |
Профиль | Отправить PM | Цитировать Можно ли как нибудь перестроить клавиши впроге.
Например, нажатие Enter равносильно нажатию TAB |
|
Отправлено: 13:05, 02-06-2003 |
DOOMer Сообщения: 3254
|
Профиль | Отправить PM | Цитировать В какой проге? Общее решение - перехватить клавишу и делать с ней все, что хочешь
|
------- Отправлено: 13:11, 02-06-2003 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Перехватить нажатие клавиши - это просто
А вот как эмулировать нажатие клавиши TAB - вот это вопрос |
Отправлено: 14:12, 02-06-2003 | #3 |
DOOMer Сообщения: 3254
|
Профиль | Отправить PM | Цитировать The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.
Если нужно подробнее - могу пример на Делфи запостить. |
------- Отправлено: 14:20, 02-06-2003 | #4 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 14:28, 02-06-2003 | #5 |
DOOMer Сообщения: 3254
|
Профиль | Отправить PM | Цитировать Я в качестве справочника использую "Советы по Делфи" от Валентина Озерова. А он сжатый весит 3,5 метра. Такие объемы мылом.... Поиском в инете находится на раз:
Советы по Delphi от Валентина Озерова (2000 советов): Оглавление (39.6K) + 1..1000 (1.93M) + 1000..2000 (1.56M) Смотрелка HTML Help без IE (416K) Модераторы не обидятся, если я сюда пример запостю? Подскажите пожалуйста как сделать имитацию ввода с клавиатуры для программы выполняющейся в дос-окне const ExtendedKeys: set of Byte = [ *// incomplete list VK_INSERT, VK_DELETE, VK_HOME, * VK_END, * *VK_PRIOR, * VK_NEXT, VK_LEFT, * VK_UP, * * VK_RIGHT, *VK_DOWN, * VK_NUMLOCK ]; procedure SimulateKeyDown(Key : byte); var flags: DWORD; begin if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY else flags := 0; keybd_event(Key, MapVirtualKey(Key, 0), flags, 0); end; procedure SimulateKeyUp(Key : byte); var flags: DWORD; begin if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY else flags := 0; keybd_event(Key, MapVirtualKey(Key, 0), KEYEVENTF_KEYUP or flags, 0); end; procedure SimulateKeystroke(Key : byte); var flags: DWORD; scancode: BYTE; begin if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY else flags := 0; scancode := MapVirtualKey(Key, 0); keybd_event(Key, scancode, flags, 0); keybd_event(Key, scancode, KEYEVENTF_KEYUP or flags, 0); end; |
------- Отправлено: 14:53, 02-06-2003 | #6 |
Новый участник Сообщения: 13
|
Профиль | Сайт | Отправить PM | Цитировать TForm.KeyPreview:=True
Procedure TForm1.Form1KeyDown(...); Begin IF Key=VK_RETURN then SelectNext(ActiveControl,True,True); End; |
------- Отправлено: 10:36, 07-06-2003 | #7 |
Новый участник Сообщения: 21
|
Профиль | Сайт | Отправить PM | Цитировать Для Delphi:
unit Unit1; interface uses *Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, *Dialogs, StdCtrls; type *TForm1 = class(TForm) * *Edit1: TEdit; * *Edit2: TEdit; * *Button1: TButton; * *Button2: TButton; * *Label1: TLabel; * *procedure Button1Click(Sender: TObject); *private * *{ Private declarations } *protected *procedure Enter_Tab(var Msg:TMessage);message CM_DIALOGKEY; *public * *{ Public declarations } *end; var *Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.Enter_Tab(var Msg: TMessage); begin if msg.WParam=13 then begin Perform(CM_DIALOGKEY,9,0); msg.Result:=1;//отключаем обработку нажатия Enter end else inherited; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Enter=Tab'); end; end. ************************************************ Для C++ (CBuilder6): Заголовочный файл //--------------------------------------------------------------------------- #ifndef UnMainH #define UnMainH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published:// IDE-managed Components * * * *TButton *Button1; * * * *TEdit *Edit1; * * * *TEdit *Edit2; * * * *TButton *Button2; * * * *TButton *Button3; private:// User declarations protected: void __fastcall KeyCatch(TMessage &Msg); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(CM_DIALOGKEY,TMessage,KeyCatch) END_MESSAGE_MAP(TForm) public: // User declarations * * * *__fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif Файл реализации //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "UnMain.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) * * * *: TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::KeyCatch(TMessage &Msg) { * * if( Msg.WParam==13){ * Perform(CM_DIALOGKEY,9,0); * *Msg.Result=1;//отключаем обработку нажатия Enter * * } else * TForm::Dispatch(&Msg); } void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage("Enter=Tab"); } //--------------------------------------------------------------------------- [s]Исправлено: Vla2003, 20:31 7-06-2003[/s] [s]Исправлено: Vla2003, 12:27 9-06-2003[/s] |
------- Отправлено: 19:27, 07-06-2003 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Alt+Tab Tuner 1.0 | OSZone Software | Новости программного обеспечения | 0 | 19-01-2010 21:30 | |
Интернет - [решено] В Internet Explorer-е не работают Enter и Tab | Sandor | Microsoft Windows Vista | 2 | 28-04-2009 20:28 | |
Разное - Сочетание клавиш WIN+TAB | Dragon_1 | Microsoft Windows Vista | 5 | 28-12-2008 02:49 | |
Разное - WinVista+Tab | aleksandriys | Microsoft Windows Vista | 0 | 17-12-2007 13:26 | |
Gnome & cron(tab) | Cursed | Общий по Linux | 7 | 07-12-2003 16:46 |
|