|
Delphi - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
04.04.2011, 21:16
|
#1
|
|
|
|
Разведчик
|
Регистрация: 03.04.2011
Сообщений: 9
Популярность: 50
Сказал(а) спасибо: 12
Поблагодарили 20 раз(а) в 13 сообщениях
|
Delphi
В принцепе проблему решил
Код 1 unit Unit1;
interface
uses
Windows, Messages, ShellApi,SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HookHandle: hHook;
implementation
{$R *.dfm}
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
begin
if Code >= 0 then begin
result := 0;
msg := Pointer(LParam);
with Form1 do
if msg.message = WM_LBUTTONDOWN then
keybd_event(Ord('L'), 0,0, 0);
end
else
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HookHandle := SetWindowsHookEx(0,
@HookProc, HInstance, 0);
end;
end.
Код 2 unit Unit1;
interface
uses
Windows, Messages, ShellApi,SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HookHandle: hHook;
implementation
{$R *.dfm}
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
begin
if Code >= 0 then begin
result := 0;
msg := Pointer(LParam);
with Form1 do
if msg.message = WM_LBUTTONDOWN then
keybd_event(Ord('L'), 0, 0, 0);
end
else
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
HookHandle := SetWindowsHookEx(0,
@HookProc, HInstance, 0);
end;
end.
Эти циклы повторяющиеся.
По первому коду: симуляция должна идти по нажатию мыши, но она продолжается ждаже после закрытия программы.
Как можно жто всё усовершенствовать.
Симуляция клавиши - это хоткей в СЕ.
Последний раз редактировалось †PreDatoR†; 06.04.2011 в 23:13.
|
|
|
05.04.2011, 08:02
|
#2
|
|
|
|
Рыцарь-защитник
|
Регистрация: 14.06.2010
Сообщений: 584
Популярность: 6626
Сказал(а) спасибо: 86
Поблагодарили 847 раз(а) в 266 сообщениях
|
Re: Delphi
как вариант, два таймера, один включается по маусдаун и жден n сек (время начала работы после зажатия). После n сек включается второй таймер который по кругу выполняет код нажатия клавиши, время ставиться с св-вах таймеров
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Delphi.
|
viteks63 |
Школа Читера |
3 |
28.03.2011 20:26 |
[Помогите!] Delphi...
|
stels95 |
Общение и обсуждение |
14 |
29.01.2011 03:38 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 15:32.
|
|