unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
ExtCtrls, MMSYSTEM;
type
TService1 = class(TService)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;
var
Service1: TService1;
Label1,Label2,Label3,Label4:string;
radiobuttonA,radiobuttonB,radiobuttonC,radiobutton X,radiobuttonY,radiobuttonZ,radiobutton7,radiobutt on8: Boolean;
hWnd: THandle;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Service1.Controller(CtrlCode);
end;
function TService1.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TService1.Timer1Timer(Sender: TObject);
var
myjoy: tjoyinfo;
p: TPoint;
begin
joygetpos(joystickid1,@myjoy);
Label1:=inttostr(myjoy.wxpos);
Label2:=inttostr(myjoy.wypos);
Label3:= inttostr(myjoy.wZpos);
radiobuttonA:= (myjoy.wbuttons and joy_button1)>0;
radiobuttonB:= (myjoy.wbuttons and joy_button2)>0;
radiobuttonC:= (myjoy.wbuttons and joy_button3)>0;
radiobuttonX:= (myjoy.wbuttons and joy_button4)>0;
radiobuttonY:= (myjoy.wbuttons and joy_button5)>0;
radiobuttonZ:= (myjoy.wbuttons and joy_button6)>0;
radiobutton8:= (myjoy.wButtons and JOY_POVLEFT)>0;
if strtoint(Label3)<35000 then
begin
if Label2='65535' then
begin
keybd_event(VK_DOWN,0,0,0);
keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);
end;
if Label2='0' then
begin
keybd_event(VK_UP,0,0,0);
keybd_event(VK_UP,0,KEYEVENTF_KEYUP,0);
end;
if Label1='0' then
begin
keybd_event(VK_LEFT,0,0,0);
keybd_event(VK_LEFT,0,KEYEVENTF_KEYUP,0);
end;
if Label1='65535' then
begin
keybd_event(VK_RIGHT,0,0,0);
keybd_event(VK_RIGHT,0,KEYEVENTF_KEYUP,0);
end;
end;
if strtoint(Label3)>35000 then
begin
if Label2='65535' then
begin
if GetCursorPos(p)=true then
SetCursorPos(p.X,p.Y+20);
end;
if Label2='0' then
begin
if GetCursorPos(p)=true then
SetCursorPos(p.X,p.Y-20);
end;
if Label1='0' then
begin
if GetCursorPos(p)=true then
SetCursorPos(p.X-20,p.Y);
end;
if Label1='65535' then
begin
if GetCursorPos(p)=true then
SetCursorPos(p.X+20,p.Y);
end;
end;
if (RadioButtonA=true) then
begin
keybd_event(VK_RETURN ,0,0,0);
keybd_event(VK_RETURN ,0,KEYEVENTF_KEYUP,0);
end;
if (RadioButtonB=true) then
begin
keybd_event(VK_tab,0,0,0);
keybd_event(VK_tab,0,KEYEVENTF_KEYUP,0);
end;
if (RadioButtonC=true) then
begin
keybd_event(VK_MENU ,0,0,0);
keybd_event(VK_MENU ,0,KEYEVENTF_KEYUP,0);
end;
if (RadioButtonX=true) then
begin
keybd_event(VK_BACK,0,0,0);
keybd_event(VK_BACK,0,KEYEVENTF_KEYUP,0);
end;
if (RadioButtonY=true) then
begin
keybd_event(VK_LWIN ,0,0,0);
keybd_event(VK_LWIN ,0,KEYEVENTF_KEYUP,0);
end;
if (RadioButtonZ=true) then
begin
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
end;
if (RadioButton8=true) then
begin
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;
end;
end.
__________________
Программист это тоже самое что и шаман: целими днями бормочет чего-то, в бубен бет, а потом и сам не знает как оно работает...
|