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