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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
1208
chellwindows上でタップ操作をエミュレートしたい4解決


chell

リンク

2019/12/8(Sun) 00:02:58|NO.89018

画面上の任意の場所でタップ長押し、2本指でそれぞれドラッグ、ズーム動作などを
HSPを使って動作させたいと考えているのですが可能でしょうか?
以下のサイトなどを参考にWindows APIのInjectTouchInput functionを使用して
試しているのですがHSPで構造体を使用するにあたってもよくわかっていない点が多く
InjectTouchInputの戻り値がパラメータが間違っているとエラーが出て動作しません。
HSPでの動作方法について教えて頂ければ幸いです。
https://docs.microsoft.com/en-us/windows/win32/api/_input_touchinjection/
https://github.com/furuya02/AlTouch/blob/master/AlTouch/Touch.cs



この記事に返信する


窓月らら

リンク

2019/12/8(Sun) 01:34:47|NO.89019

HSP3Dishを使えばマルチタッチを検出できます。
2本指操作の判定は自前で行う必要がありますが。



chell

リンク

2019/12/8(Sun) 14:08:38|NO.89023

ご回答ありがとうございます。
HSPからのマルチタッチの出力ができればと考えております。



砂時 計

リンク

2019/12/10(Tue) 21:38:58|NO.89037

ダウンだけですがこんな感じです。
実行すると10点タッチと同じ効果が発生するのでご注意ください。


#uselib "user32.dll" #cfunc InitializeTouchInjection "InitializeTouchInjection" int,int #cfunc InjectTouchInput "InjectTouchInput" int,int #const TOUCH_FEEDBACK_DEFAULT 1 #const TOUCH_FEEDBACK_INDIRECT 2 #const TOUCH_FEEDBACK_NONE 3 #const POINTER_FLAG_INRANGE 0x2 #const POINTER_FLAG_INCONTACT 0x4 #const POINTER_FLAG_DOWN 0x10000 #const POINTER_FLAG_UPDATE 0x20000 #const POINTER_FLAG_UP 0x40000 #const TOUCHMASK_CONTACTAREA 0x1 #const TOUCHMASK_ORIENTATION 0x2 #const TOUCHMASK_PRESSURE 0x4 #const PT_POINTER 1 #const PT_TOUCH 2 #const PT_PEN 3 #const PT_MOUSE 4 num = 10 result = InitializeTouchInjection(num, TOUCH_FEEDBACK_DEFAULT) mes result wait 100 dim t, 34 * num f = 0 repeat num margin = 2 rr = 100.0 ang = M_PI * double(cnt) / double(num) x = 300 + int(rr * sin(ang)) y = 300 + int(rr * -cos(ang)) contact_down = POINTER_FLAG_DOWN | POINTER_FLAG_INRANGE | POINTER_FLAG_INCONTACT // POINTER_INFO のところ t(f + 0) = PT_TOUCH t(f + 1) = cnt t(f + 2) = 0 t(f + 3) = contact_down t(f + 6) = x t(f + 7) = y f += 22 // POINTER_TOUCH_INFO の touchFlags 以降 t(f + 0) = 0 t(f + 1) = TOUCHMASK_CONTACTAREA t(f + 2) = x - margin t(f + 3) = y - margin t(f + 4) = x + margin t(f + 5) = y + margin f += 12 loop result = InjectTouchInput(num, varptr(t)) mes result



chell

リンク

2019/12/11(Wed) 16:21:05|NO.89041

タップ動作確認できました。何日か苦戦していたので感激です!
わかりやすくサンプルも書いて頂きありがとうございました。



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