いままで、OpenClipboard( NULL )として使ってて、
どうもexplorerとコピーの動作が違うなと思ってたんだけど、
OpenClipboard( hWnd )とちゃんとウィンドハンドルを指定するようにしたら
explorerのコピーと同様の動作になった。
たぶんどこかのサンプルのコピペでNULLを指定してたんだろうけど
意外なところで落とし穴があった。
2015年3月28日土曜日
2015年3月12日木曜日
pointClick ver1.00a
■ダウンロード
File: pointClick100.zip
Size: 48.3KB
■現在発覚しているバグ
まれにクリック離し処理が実行されないことがあるバグがあります。5000クリックに一回ぐらい。
■概要
クリックしたときに、マウスがちょっと動いてしまってドラッグになってしまうのを防ぎます。
■動作環境
Windows 8.1
CPU 1GHz以上
メモリ 1GB以上
■アンインストール
レジストリは触っておりません。
削除の際はフォルダごとゴミ箱へ。
■使い方
○ on/off
位置を補正する機能のオンオフを行います
○左クリック、ホイールクリック、右クリック
位置補正機能を有効にするマウスのボタンを選択できます。
○処理タイプ
・Type-A
マウスボタンを押して、離したときにカーソル位置を押した位置に戻す処理方法
ボタンの押し離しのタイミングはそのままでカーソル位置だけ手を加えるので処理がシンプル
Webサイトの画像ボタンなどはこの処理でもドラッグになってしまうことがある
・Type-B
マウスボタンを押したときにはボタンを押したことにせず、離したときにボタンを押し離し処理を行う方法
クリックしている時間が短くなるのでドラッグになりにくい
実際にクリック処理されるタイミングが、マウスのボタンを離したときなのでワンテンポ遅れるのが欠点
○有効時間
マウスのボタンを押してから離すまでの時間設定
設定した時間よりも長くマウスのボタンを押されていると、位置補正機能は働きません
○有効距離
マウスのボタンを押してから離すまでに移動した距離の設定
設定した距離よりも長く移動していたら、位置補正機能は働きません
○クリック時間(ms)
Type-Bで、クリックしている時間を設定します
あまり短すぎるとクリックしたことにならない場合があります
○ログ表示
ログ表示機能のオンオフを行います
○ログ表示数
表示するログの数の設定
●ログ表示
有効時間、有効距離の設定にお役立てください
○判定
位置を補正する機能が働いたら○が、
時間が超過しているかカーソルの移動距離が設定より大きいと×が表示されます
○マウス
マウスの右クリック、左クリック、中クリックのどれであるかが表示されます
○経過時間(ms)
マウスのボタンが押されてから離されるまでに経過した時間が表示されます
○距離
マウスのボタンが押されてから離されるまでに移動した距離が表示されます
■そのほか
このソフトウェアを使用し、何らかの障害が発生しても責任を取りかねますのでご了承ください。
■更新履歴
2015-03-12 ver1.01a
アイコン変更
終了確認をするよう修正
Type-Bにてクリック後カーソル位置がずれることがあるのを修正
Type-Bにてカーソルが有効距離以上動くと、ただちにボタン押し処理が実行されるよう修正
Type-Bにてボタンを押しているときホイールをまわすと、ただちにボタン押し処理が実行されるよう修正
2015-03-07 ver1.00
2015年3月11日水曜日
日記ちゃん
mouse_event 関数
https://msdn.microsoft.com/ja-jp/library/cc410921.aspx
mouse_event()のMOUSEEVENTF_ABSOLUTEフラグって全然効いてなくね? って思ったら、
指定する座標がスクリーン座標系じゃなかったでござる。
0~65535で指定するのはわかったけど、マルチディスプレイだとどうなるんこれ。
MOUSEEVENTF_MOVE指定しないと座標指定しても意味ないのか。
てっきり指定座標でMOUSEEVENTF_RIGHTDOWNなりをしてくれるのかと思ってた。
mouse_event( MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE, clickPos.x, clickPos.y, 0, 0 );
↓
mouse_event( MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, clickPos.x, clickPos.y, 0, 0 );
ちゃんとMOUSEEVENTF_MOVEを指定して実験してみたところ、
メインモニタの座標になる様子だった。
メイン以外のモニタでMOUSEEVENTF_ABSOLUTEは多分できない。
指定座標でクリックさせるなら、
潔くSetCursorPos()してmouse_event()でクリック処理して、って流れのほうがシンプルでわかりやすいと思う。
https://msdn.microsoft.com/ja-jp/library/cc410921.aspx
mouse_event()のMOUSEEVENTF_ABSOLUTEフラグって全然効いてなくね? って思ったら、
指定する座標がスクリーン座標系じゃなかったでござる。
0~65535で指定するのはわかったけど、マルチディスプレイだとどうなるんこれ。
MOUSEEVENTF_MOVE指定しないと座標指定しても意味ないのか。
てっきり指定座標でMOUSEEVENTF_RIGHTDOWNなりをしてくれるのかと思ってた。
mouse_event( MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE, clickPos.x, clickPos.y, 0, 0 );
↓
mouse_event( MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, clickPos.x, clickPos.y, 0, 0 );
ちゃんとMOUSEEVENTF_MOVEを指定して実験してみたところ、
メインモニタの座標になる様子だった。
メイン以外のモニタでMOUSEEVENTF_ABSOLUTEは多分できない。
指定座標でクリックさせるなら、
潔くSetCursorPos()してmouse_event()でクリック処理して、って流れのほうがシンプルでわかりやすいと思う。
2015年3月7日土曜日
pointClick ver1.00
■ダウンロード
File: pointClick100.zip
Size: 47.4KB
■概要
クリックしたときに、マウスがちょっと動いてしまってドラッグになってしまうのを防ぎます。
■動作環境
Windows 8.1
CPU 1GHz以上
メモリ 1GB以上
■アンインストール
レジストリは触っておりません。
削除の際はフォルダごとゴミ箱へ。
■使い方
○ on/off
位置を補正する機能のオンオフを行います
○左クリック、ホイールクリック、右クリック
位置補正機能を有効にするマウスのボタンを選択できます。
○処理タイプ
・Type-A
マウスボタンを押して、離したときにカーソル位置を押した位置に戻す処理方法
ボタンの押し離しのタイミングはそのままでカーソル位置だけ手を加えるので処理がシンプル
Webサイトの画像ボタンなどはこの処理でもドラッグになってしまうことがある
・Type-B
マウスボタンを押したときにはボタンを押したことにせず、離したときにボタンを押し離し処理を行う方法
クリックしている時間が短くなるのでドラッグになりにくい
実際にクリック処理されるタイミングが、マウスのボタンを離したときなのでワンテンポ遅れるのが欠点
○有効時間
マウスのボタンを押してから離すまでの時間設定
設定した時間よりも長くマウスのボタンを押されていると、位置補正機能は働きません
○有効距離
マウスのボタンを押してから離すまでに移動した距離の設定
設定した距離よりも長く移動していたら、位置補正機能は働きません
○クリック時間(ms)
Type-Bで、クリックしている時間を設定します
あまり短すぎるとクリックしたことにならない場合があります
○ログ表示
ログ表示機能のオンオフを行います
○ログ表示数
表示するログの数の設定
●ログ表示
有効時間、有効距離の設定にお役立てください
○判定
位置を補正する機能が働いたら○が、
時間が超過しているかカーソルの移動距離が設定より大きいと×が表示されます
○マウス
マウスの右クリック、左クリック、中クリックのどれであるかが表示されます
○経過時間(ms)
マウスのボタンが押されてから離されるまでに経過した時間が表示されます
○距離
マウスのボタンが押されてから離されるまでに移動した距離が表示されます
■そのほか
このソフトウェアを使用し、何らかの障害が発生しても責任を取りかねますのでご了承ください。
■更新履歴
2015-03-07 ver 1.00
登録:
投稿 (Atom)