ļо˽űʦ(Script Expert)ú÷˵
(ע˺б˽ο˵ļ)

::VBSCall
function VBSCall(FunctionName:string; Param1; Param2; Param3; ...):value
нűʦǶVBScriptӳ򣬷ֵΪVBScriptֵ
FunctionName: ʾVBScript
Param1,Param2,... : ʾVBScriptɸ
 set s=VBSCall("Test","a","b")  -> VBScriptTest,Ϊ"a""b"

::JSCall
function JSCall(FunctionName:string; Param1; Param2; Param3; ...):value
нűʦǶJavaScriptӳ򣬷ֵΪJavaScriptֵ
FunctionName: ʾJavaScript
Param1,Param2,... : ʾJavaScriptɸ
 set s=JSCall("Test","a","b")  -> JavaScriptTest,Ϊ"a""b"

::CaptureBmp
procedure CaptureBmp(h:HWND; x1:integer; y1:integer; x2:integer; y2:integer; BmpFile:string);
ָڵָΧȡΪbmpͼƬļ˺ֺ̨֧ͼ
h: ҪȡͼƬĴھΪ0ʾȫĻ귶Χнͼ
(x1,y1): ҪͼķΧϽ꣬h=0ʱʹĻ꣬ʹôꡣ
(x2,y2): ҪͼķΧ½꣬h=0ʱʹĻ꣬ʹôꡣ
BmpFile: ͼ󱣴ļ
do CaptureBmp(0,100,100,200,200,"Test.bmp")

::RunProcess
function RunProcess(CmdLine:string; Wait:integer): integer;
ִⲿ򣬿ִг򡢴ĵַȣWindowsĿʼ->һ¡
CmdLine: ʾҪеⲿһ(ִ֧в)Ҳһַ(ԶĬ)Ҳĵļ(Զĳ)
Wait: ʾǷҪȴִϣwait=1ʾȴִϣwait=0ʾȴִϣ˲CmdLineΪһʱЧCmdLineΪַĵȷǿִļ˲Զԡ
ֵ: Wait=0CmdLineǳʱѾ򿪵ĳľǷ0
do RunProcess("ping 127.0.0.1 > c:\1.txt", 1)  -> pingipַǷʹãȴpingִϣԽc:\1.txtļ
      do RunProcess("c:\1.txt",0)                      -> Notepad.exe1.txtļڣԶ

::IF
function If(Exp1; Exp2; Exp3): Variant;
Exp1ֵжϷĸֵExp1Ϊ߼桱ʱֵΪExp2򷵻Exp3
Exp1ӦΪ߼ж, Exp2,Exp3ֵΪ͵ֵ(ַ)
IfʹExcelifʽ÷һ£ҿǶףӦÿɼĳЩ

set x=If(If(3>2,1,0)>0,if(4>5,2,3),if(7=7,7,"123"))  ->  ֵΪ 3

::NetSend
procedure NetSend(Addr:string; Port:integer; Msg:string);
ͨTCP/IP磬ָĵַ(Addr)ļָ˿PortϢ
AddrΪIPַ
PortΪԶ˼Ķ˿
MsgΪҪ͵Ϣַ
עͨ˺͵ϢԶ˼Ҳ˽űʦ򣬲ҪͨӦָNetWaitNetWaitExϢ
do NetSend("192.168.11.12", 21345, "Test message from se")

::NetWait
function NetWait(Port:integer; TimeOut:integer; var RemoteAddr:string):string;
ڱ˿(Port)ԱϢı
PortΪ˿
TimeOutΪʱƣڴûյϢؿַ-1ʾʱƣֻҪûյϢһֱȴ
RemoteAddrյϢԶĸIPַ
ע˺ֻܽϵĽűʦͨNetSendNetSendExϢ
set s=NetWait(21345, 5000, remoteAddr)

::NetConnect
function NetConnect(Addr:string; Port:integer):integer;
ַָ(Addr)Զָ̼˿(Port)ɹظӵľʧܣ򷵻ֵΪ0
AddrΪIPַ
PortΪԶ˼Ķ˿
עصľֻܱNetSendExΪá
set h=NetConnect("192.168.11.12", 21345)

::NetDisconnect
procedure NetDisconnect(handle:integer);
ϿһѾ򿪵Զ̼ӡ
handleΪҪϿԶӵľþӦΪNetConnectء
do NetDisconnect(h)

::NetOpenPort
function NetOpenPort(Port:integer):integer;
һļ˿ڣԱܻȡԶ̼Ϣɹظü˿ڵľʧܣ򷵻ֵΪ0
PortΪҪ򿪼Ķ˿ںš
עصľֻܱNetWaitExΪá
set h=NetOpenPort(21345)

::NetClosePort
procedure NetClosePort(handle:integer);
رһѾ򿪵ı˿ڡ
handleΪҪرյļ˿ڵľþӦNetOpenPortء
do NetClosePort(h)

::NetSendEx
procedure NetSendEx(handle:integer; Msg:string);
ͨTCP/IP磬ѾӵļϢ
handleΪͨNetConnect򿪵Ӿ
MsgΪϢı
ע1ͨ˺͵ϢԶ˼Ҳ˽űʦ򣬲ҪͨӦָNetWaitNetWaitExϢ
ע2˺NetSendڣ
     NetSendExҪԶִ̼ЧʱȽϸߣҪԼNetConnect/NetDisconnect/ϿԶ̼
     NetSendÿִжԶ/ϿһԶ̼ʱЧʽϵͣNetSendʹýϷ㡣
do NetSendEx(h,"Test message from se")

::NetWaitEx
function NetWaitEx(handle:integer; TimeOut:integer; var RemoteAddr:string):string;
Ѵ򿪵˿ڵľϢı
handleΪNetOpenPort򿪵˿ھ
TimeOutΪʱƣڴûյϢؿַ-1ʾʱƣֻҪûյϢһֱȴ
RemoteAddrյϢԶĸIPַ
ע1˺ֻܽϵĽűʦͨNetSendNetSendExϢ
ע2˺NetWaitڣ
     NetWaitExҪ򿪼˿ڣִЧʱȽϸߣҪԼNetOpenPort/NetClosePort/رռ˿
     NetWaitÿִжԶ/رһμ˿ڣʱЧʽϵͣNetWaitʹýϷ㡣
set s=NetWaitEx(h,5000,RemoteAddr)

::SendStr
procedure SendStr(h:integer; Str:string);
ָڷַֺ̨֧ڷ͡
hΪھStrΪ͵ַ

::SendKeyDown
procedure SendKeyDown(h:integer; vKey:integer; Times:integer; KeyInterval:integer);
Ϣ͵ָĴУָǷں̨С
h-ָڵľ
vKey-ⰴ
Times-ظ
KeyInterval-ÿ֮ļʱ
do SendKeyDown(h, 65,1,50)

::SendMouseKey
procedure SendMouseKey(h:integer; KeyStr:string; Times:integer; x:integer; y:integer; KeyInterval:integer);
갴͵ָĴУָǷں̨С
h-ָڵľ
KeyStr-갴"LDown","LUp","LClick","RDown","RUp","RClick","MDown","MUp","MClick","MoveTo","LDBLClick","RDBLClick","MDBLClick","WheelForward","WheelBackward"
Times-ظ
x,y - 㣬ԭhӦڵϽǣĻϽΪԭ㡣
KeyInterval-ÿ֮ļʱ
do SendMouseKey(h,"LClick",1,10,10,50)

::HWMouseMoveR
procedure HWMouseMoveR(dx:integer; dy:integer);
ͨӲģʽģƶdx,dyΪĻƶľ
ע⣺
1Ӳģⷽʽ֧USBֻ꣬PS/2
2Ӳģƶľʵƶע
do HWMouseMoveR(100,0)

::GetCursorSharp
function GetCursorSharp():integer;
ȡǰ״룬ڷֱ״Ƿ˸ı䡣
: set h=GetCursorSharp()

::GetForeGroundWindow
function GetForeGroundWindow(): integer;
ȡǰϷĴڵľ
set h=GetForeGroundWindow()

::WindowFromPoint
function WindowFromPoint(x:integer; y:integer):integer;
ȡĻָλϲĴھ
set h=WindowFromPoint(100,100)

::GetWindowByTitle
function GetWindowByTitle(Title:string):integer;
ȡָĴھTitleֻǴڱǰ沿֣һҪ⡣
set h=GetWindowByTitle("Notepad")

::GetFocusedWindow
function GetFocusedWindow():integer;
ȡǰȡýӴھ
set h=GetFocusedWindow()

::WindowFromMouse
function WindowFromMouse():integer;
ȡλõĴھ
set h=WindowFromMouse()

::GetColor
function GetColor(hWND:integer; x:integer; y:integer):integer;
ȡָhWNDУָĵɫx,yΪhWNDϽǵꡣ
set c=GetColor(h,100,100)

::GetColorPos
procedure GetColorPos(hWND:integer; Color:integer; x1:integer; y1:integer; x2:integer; y2:integer; cDiff:integer; var x:integer; var y:integer);
ָhWNDָΧ(x1,y1)(x2,y2)ָɫColorɫֵ꣬x,y
cDiffɫĲȣ0ʾɫȫͬ
do GetColorPos(h,$00FFFFFF,0,0,1024,768,0,x,y)

::GetColorPosEx
procedure GetColorPosEx(hWND:integer; Color:integer; x0:integer; y0:integer; r:integer; cDiff:integer; var x:integer; var y:integer);
ָhWND(x0,y0)ΪԲģrΪ뾶ԲηΧָɫColorĵֵ꣬x,y
cDiffɫĲȣ0ʾɫȫͬ
do GetColorPosEx(h,$00FFFFFF,512,354,200,0,x,y)

::GetPicPos
procedure GetPicPos(hWND:integer; PicFile:string; x1:integer; y1:integer; x2:integer; y2:integer; Percent:single; cDiff:integer; var x:integer; var y:integer);
ָhWNDУָͼPicFileָΧ(x1,y1)(x2,y2)еλãֵx,y
Percentʾͼεƶ, 1ʾͼƬȫͬ
cDiffʾصɫĲȣ0ʾɫȫͬ
do GetPicPos(h,"c:\1.bmp",0,0,1024,768,0.9,0,x,y)

::GetPicPosEx
procedure GetPicPosEx(hWND:integer; PicFile:string; x0:integer; y0:integer; r:integer; Percent:single; cDiff:integer; var x:integer; var y:integer);
ָhWNDУָͼPicFileָ(x0,y0)ΪԲģrΪ뾶ԲηΧڴڵλãֵx,y
Percentʾͼεƶ, 1ʾͼƬȫͬ
cDiffʾصɫĲȣ0ʾɫȫͬ
do GetPicPosEx(h,"c:\1.bmp",512,354,200,0.9,0,x,y)

::ReadMem
function ReadMem(hWnd:integer; Type:string; Addr:integer): Value;
ȡָڽ̵ڴݣȡֵںֵ
hWndΪĿ괰ھ
TypeΪһַʾҪȡͣΪ"Byte","Word","DWord","Float"
AddrΪҪȡڴַ
set x=ReadMem(h,"DWord",$845600)

::WriteMem
procedure WriteMem(hWnd:integer; Type:string; Addr:integer; Value);
ָڽ̵ڴд
hWndΪĿ괰ھ
TypeΪһַʾҪдͣΪ"Byte","Word","DWord","Float"
AddrΪҪдڴַ
ValueΪҪдڴ
do WriteMem(h,"Dword",$845600,100)

::WriteIntegerToIniFile
procedure WriteIntegerToIniFile(FileName:string; Section:string; Indent:string; Num:integer);
һдIniļָλá
do WriteIntegerToIniFile("c:\1.ini","common","test1", 100)

::WriteStringToIniFile
procedure WriteStringToIniFile(FileName:string; Section:string; Indent:string; s:string);
һַдIniļָλá
do WriteStringToIniFile("c:\1.ini","common","test2","go go go")

::WriteFloatToIniFile
procedure WriteFloatToIniFile(FileName:string; Section:string; Indent:string; Num:Float);
һдIniļָλá
do WriteFloatToIniFile("c:\1.ini","common","test1", 100.222)

::ReadIntegerFromIniFile
function ReadIntegerFromIniFile(FileName:string; Section:string; Indent:string; Default:integer):integer;
Iniļָλöȡһֵ֣֣Ҳ֣򷵻Default֡
set i=ReadIntegerFromIniFile("c:\1.ini","common","test1",0)

::ReadStringFromIniFile
function ReadStringFromIniFile(FileName:string; Section:string; Indent:string; Default:string):string;
IniļָλöȡһֵַַҲַ򷵻Defaultַ
set s=ReadStringFromIniFile("c:\1.ini","common","test2","")

::ReadFloatFromIniFile
function ReadFloatFromIniFile(FileName:string; Section:string; Indent:string; Default:Float):Float;
Iniļָλöȡһֵ֣ø֣Ҳø֣򷵻Default
set i=ReadFloatFromIniFile("c:\1.ini","common","test1",0.1)

::SetSpeed
procedure SetSpeed(Ratio:Float);
ͨԷʵֱܣRatioΪٱʣ0-1ʾ٣>1ʾ
øʽ: do SetSpeed(Ratio)
ע⣺ʹǰȽűʦĿ¼µSpeeder.dll.disableΪSpeeder.dll
do SetSpeed(10)

::ColorDiff
function ColorDiff(c1:integer; c2:integer):integer;
ȽɫĲȣֵΪֵҪʵòֵҵľ飬òֵС3ʱɫͺˡ

::UBound
function UBound(v:Array; [Dimension:integer]): integer;
ȡָĳάϱ
DimensionΪѡʾڼάδָĬΪһά

::LBound
function LBound(v:Array; [Dimension:integer]): integer;
ȡָĳά±
DimensionΪѡʾڼάδָĬΪһά

::DimCount
function DimCount(v:Array): integer;
ȡָάά涨1ʼ

::Split
function Split(s:string; Deli:string): Array;
ַ<s>涨ķָ<Deli>зָһһάУһά±Ϊ0
ָ<Deli>ǵַһַ

var v=0
set v=Split("abc;def;ghi",";")
: v[0]="abc"   v[1]="def"    v[2]="ghi"

::Length
function Length(str:string) : integer;
ָStrַĳ

::Len
function Len(str:string) : integer;
ָStrַĳ

::Trunc
function Trunc(f:Float):integer;
С㲿ȥ֣롣

::Round
function Round(f:Float):integer;
С㲿ȥ֡

::Random
function Random(Range:integer):integer;
ȡֵΪһ0Range-1Χڵ
磺set x=Random(100)ֵxĴСΪ0<=x<100

::ABS
function ABS(x:integer):integer;
ֵָȡֵ

::SQR
function SQR(x:Float):Float;
ֵָƽ㣬Чx^2

::SQRT
function SQRT(x:Float):Float;
ֵָп㣬Чx^(1/2)

::Ln
function LN(x:Float):Float;
Ȼ㣨eΪ׵Ķ㣩

::Lg
function LG(x:Float):Float;
10Ϊ׵Ķ

::Log
function LOG(x:Float):Float;
2Ϊ׵Ķ

ΪһЩҡصĺ

::Sin
function Sin(x:Float):Float;

::Cos
function Cos(x:Float):Float;

::Tan
function Tan(x:Float):Float;

::Tg
function TG(x:Float):Float;

::Ctg
function CTG(x:Float):Float;

::Sec
fucntion SEC(x:Float):Float;

::Csc
fucntion CSC(x:Float):Float;

::ArcSin
fucntion ArcSin(x:Float):Float;

::ArcCos
function ArcCos(x:Float):Float;

::ArcTan
function ArcTan(x:Float):Float;

::SinH
function SinH(x:Float):Float;

::CosH
function CosH(x:Float):Float;

::TanH
function TanH(x:Float):Float;

::ArcSinH
function ArcSinH(x:Float):Float;

::ArcCosH
function ArcCosH(x:Float):Float;

::ArcTanH
function ArcTanH(x:Float):Float;
