HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0212
ゆーGetMouseMovePointsExの使い方2解決


ゆー

リンク

2018/2/12(Mon) 12:50:35|NO.82445

hspでGetMouseMovePointsEx関数を使いたいのですが、HSPでどう使えばいいのか分かりません。
誰か教えていただけますでしょうか。
https://msdn.microsoft.com/ja-jp/library/cc364708.aspx



この記事に返信する


いののて

リンク

2018/2/12(Mon) 15:27:22|NO.82447

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



ゆー

リンク

2018/2/12(Mon) 21:01:26|NO.82456

ありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.