if (pos('ACD', sTitle)>0) and (pos('FotoCanvas', sTitle)>0) and (Msg=LOGITECH) then case lParam of
PLAY_PAUSE: Key2(VK_Control, ord('S'));//Ctrl+S
PLAY_LEFT : Key2(VK_Shift , ord('S'));//Shift+S
PLAY_RIGHT: Key2(VK_Shift , Ord('A'));//Shift+A
end;
//NetCaptor
if (pos('NetCaptor', sTitle)>0) and (Msg=LOGITECH) then case lParam of
PLAY_PAUSE: Key3(VK_Control, VK_Shift, ord('S'));//Ctrl+Shift+S
PLAY_LEFT : Key1(VK_F2);
PLAY_RIGHT: Key1(VK_F3);
end;
//UltraEdit
if (pos('UltraEdit-32', sTitle)>0) and (Msg=LOGITECH) then case lParam of
PLAY_PAUSE: Key2(VK_Control, ord('S'));//Ctrl+S
PLAY_LEFT : Key2(VK_Control, VK_F6 );//Ctrl+F6
PLAY_RIGHT: Key3(VK_Control, VK_Shift, VK_F6);//Ctrl+Shift+F6
end;
end; end;
procedure Tf.Down(VK: byte); begin keybd_event(VK, MapVirtualKey(VK, 0), 0, 0); end;
procedure Tf.UP (VK: byte); begin keybd_event(VK, MapVirtualKey(VK, 0), KEYEVENTF_KEYUp, 0); end;
procedure Tf.Key1(VK1: byte); begin
Down(VK1);
Up (VK1);
end;
procedure Tf.Key2(VK1, VK2: byte); begin
Down(VK1);
Down(VK2);
Up (VK2);
Up (VK1);
end;
procedure Tf.Key3(VK1, VK2, VK3: byte); begin
Down(VK1);
Down(VK2);
Down(VK3);
Up (VK3);
Up (VK2);
Up (VK1);
end;
end.
//▓▓▓▓▓▓▓▓▓ DlgDebug_U.pas
{*******************************************************************************
程序中用来显示调试信息的非模态对话框
2005/02
*******************************************************************************}
unit DlgDebug_U; interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
procedure deb(theMsg: string); overload;//Debug 信息
procedure deb(theMsg: integer);overload;
procedure deb(const theStr: string; const Args: array of const); overload;
type
TdlgDebug = class(TForm)
re: TRichEdit;
procedure mmKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
indent: byte;
selColor: TColor;
procedure TimeLine;
end;
var dlgDebug: TdlgDebug;
dbg: Boolean;
implementation
{$R *.dfm}
procedure TdlgDebug.mmKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key=VK_SPACE then begin
re.Tag := integer( not boolean(re.Tag) );
//mm.Tag := integer( not boolean(mm.Tag) );
//if boolean(mm.Tag) then Red.Suspend
//else Red.Resume;
end;
end;
procedure deb(theMsg: string); begin
if not dbg then exit;
with dlgDebug do begin//Debug 信息
TimeLine;
re.SelAttributes.Color := selColor;
re.paragraph.FirstIndent := indent;
re.Lines.Add(theMsg);
//mm.Lines.Add(theMsg);
end;
end;
procedure deb(theMsg: integer);
begin
if not dbg then exit;