GetMouseMovePointsExの引数説明:
第1パラに、MOUSEMOVEPOINT構造体1つのサイズ(16 bytes)を指定します。
第2パラに、現在のマウス座標を代入したMOUSEMOVEPOINT構造体へのポインタを指定します。
第3パラに、マウスの座標の履歴が代入されるMOUSEMOVEPOINT構造体へのポインタを指定します。
第4パラに、取得するマウスの座標の履歴の数を指定します。
第5パラに、使用する取得方法の定数を指定します。(GMMP_USE_DISPLAY_POINTS か GMMP_USE_HIGH_RESOLUTION_POINTS)
スクリプトを出すとこんな感じでしょうか
#include "user32.as"
#define GMMP_USE_DISPLAY_POINTS 1
#define GMMP_USE_HIGH_RESOLUTION_POINTS 2
nBufPoints = 30 //取得する点の数
dim mpt, 4
dim mptBuf, 4*nBufPoints
mpt=ginfo(0),ginfo(1)
GetMouseMovePointsEx length(mpt)*4, varptr(mpt), varptr(mptBuf), nBufPoints, GMMP_USE_DISPLAY_POINTS
mptBuf変数に、nBufPoints分のマウスの座標とタイムスタンプが入っています。
すると、下のサンプルのように、マウスの座標の履歴を列挙できるようになります。
#include "user32.as"
#define GMMP_USE_DISPLAY_POINTS 1
#define GMMP_USE_HIGH_RESOLUTION_POINTS 2
sdim buf
objmode 2: font "MS Gothic", 12
mesbox buf,ginfo_winx,ginfo_winy,5
nBufPoints = 30 //取得する点の数
dim mpt, 4
dim mptBuf, 4*nBufPoints
repeat
mpt=ginfo(0),ginfo(1)
GetMouseMovePointsEx length(mpt)*4, varptr(mpt), varptr(mptBuf), nBufPoints, GMMP_USE_DISPLAY_POINTS
//履歴を全て列挙
buf=""
repeat nBufPoints
buf+=strf("(%5d, %5d) %2d時間 %02d分 %02d秒 %03dミリ秒\n", mptBuf(cnt*4), mptBuf(cnt*4+1), mptBuf(cnt*4+2)/3600000\24, mptBuf(cnt*4+2)/60000\60, mptBuf(cnt*4+2)/1000\60, mptBuf(cnt*4+2)\1000)
loop
objprm 0, buf
wait 6
loop
stop