www.pudn.com > UCtrl.rar > MainFace.pas


unit MainFace; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Graphics, Forms,Dialogs, 
   Device, StdCtrls, ExtCtrls, Controls, Classes, GIFImage; 
type 
  MState=(bt0,bt1,bt2,bt3,bt4,bt5,bt6); 
type 
  TForm1 = class(TForm) 
    Image1: TImage; 
    Label1: TLabel; 
    procedure FormCreate(Sender: TObject); 
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; 
      Shift: TShiftState; X, Y: Integer); 
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, 
      Y: Integer); 
    procedure Image1Click(Sender: TObject); 
    procedure FormShow(Sender: TObject); 
    procedure FormDestroy(Sender: TObject); 
  private 
    FState:MState; 
    Finfo : Dinfo; 
    ShowId: integer; 
    CloseID:Integer; 
    procedure CheckState(X, Y: Integer); 
    procedure SetState(St:MState); 
    procedure WMDeviceChange(var Msg : Tmessage); message WM_DEVICECHANGE; 
    procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY; 
    procedure SetInfo(inf : Dinfo); 
    property Info : Dinfo read Finfo write SetInfo; 
  public 
    procedure RegHotKey; 
    property State:MState read FState write SetState; 
  end; 
 
var 
  Form1: TForm1; 
implementation 
 
{$R *.dfm} 
 
function RunOneCheck(Str:String):Boolean; 
begin 
  CreateMutex(nil,False,pchar(Str)); 
  Result:= GetLastError=ERROR_ALREADY_EXISTS; 
end; 
 
function GetSysPath():String; 
begin 
  Result:=ExtractFilePath(ParamStr(0))+'TSinJoy.sys'; 
end; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  if RunOneCheck(Application.Title) then Application.Terminate; 
  self.Width:=Image1.Width; 
  self.Height:=Image1.Height; 
  self.TransparentColor := true; 
  self.TransparentColorValue := $0077D728; 
  self.Color := $0077D728; 
  self.BorderStyle := BsNone; 
  Label1.OnMouseDown:=Image1.OnMouseDown; 
  Label1.Caption:=dinf6; 
 if not FileExists(GetSysPath) then  begin 
   MessageBox(handle,'程序不完整,请保证程序的完整性!','警告',16); 
   Application.Terminate; 
 end; 
 if (not SYSInstall(PChar(GetSysPath))) or (not SYStartAndRun) then begin 
   if 2=MessageBox(handle,'程序注册失败,这样会丢失主要功能,是否继续使用?','提示',1) then 
   Application.Terminate; 
 end; 
 
end; 
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  if Button=mbLeft then 
  begin 
    if State=bt0 then begin 
    ReleaseCapture; 
    Perform(WM_SYSCOMMAND,$F012,0); 
    end else begin 
      Image1Click(Sender); 
    end; 
  end; 
end; 
 
function Stin(X,L,R:Integer):Boolean; 
begin 
  Result:=(X>=L) and (X