[Common]
Description=演示如何调用外部标准API函数
HotKeyStart=119
HotKeyStop=122
HotKeyPause=0
Enabled=0
RunOnce=1

[Script]
//此脚本演示如何利用SE_API插件调用外部标准函数
//可支持stdcall及cdecl两种函数调用模式，可自由调用windows系统函数(如下演示脚本)
//此脚本需SE_API.dll插件支持，请至http://bbs.dxqsoft.com下载最新版本的SE_API插件。

//定义若干用来保存函数句柄的变量
var hMessageBox=0
var hGetForeGroundWindow=0
var hBeep=0
//临时变量
var i=0

Main:
  //首先需要使用APIOpen函数将需要使用的外部函数打开
  //注意函数名要区分大小写
  set hMessageBox=APIOpen('User32.dll','MessageBoxA','ISSI:I','s')
  set hGetForeGroundWindow=APIOpen('User32.dll','GetForegroundWindow',':I','s')
  set hBeep=APIOpen('Kernel32.dll','Beep','II:I','s')

  //开始调用外部函数
  //调用系统User32.dll中的MessageBoxA函数
  set i=APICall(hMessageBox,0,'演示如何直接调用标准外部API函数','测试',0)
  //调用系统User32.dll中的GetForegroundWindow函数
  set i=APICall(hGetForeGroundWindow)
  do ShowMsg('调用外部系统函数获取的窗口句柄与调用插件函数获取的窗口句柄比较：'+AsciiToChar($0d)+asciiToChar($0a)+inttostr(i)+' = '+inttostr(GetForeGroundWindow()))
  //调用系统Kernel32.dll中的Beep函数，可使PC扬声器发声(不是音箱)
  do APICall(hBeep,800,200)
EndMain

Finally
  //Your code here when exit running
  //最后，别忘了退出脚本前释放所有已经打开的函数句柄
  do APIClose(hMessageBox)
  do APIClose(hGetForeGroundWindow)
  do APIClose(hBeep)
End
