ヨン様と呼ばないで!

アクセスカウンタ

zoom RSS ChatteringCanceler2.2 β2リリース

<<   作成日時 : 2015/10/07 21:18   >>

ナイス ブログ気持玉 8 / トラックバック 0 / コメント 20

先日リリースした2.2β1ですが、バグが発覚したので修正しました。
今回もDropboxでの公開です。
でも、Vectorには公開しないとかいいつつ、Vectorに説明とリンクは貼り付けてあったりします。

https://www.dropbox.com/s/sejn8688qqwrykq/ChatteringCanceler2.2.b2.zip?dl=0

変更一覧
・ボタンの左右を入れ替え、かつイベントディレイ/ハイブリッド方式の場合にボタンが入れ替わらない問題を再対策
 (2.1aリリース時にマージ漏れしていた)

なんとも情けないバグですが、どうもリポジトリ移行の時に修正マージが漏れたようです。
バージョン管理システムを使ってるってだけで安心してはいけないということがよく分かりますね(自虐
仕事ではやったことのないようなミスをしていたようです・・・。
まあ、つまり修正したことのあるバグということで、修正そのものは思い出してしまえばあっさり完了しました。
このバージョンでβは終わりにして、正式版にしたい気持ちでいっぱいです。

例のごとく、何かしら不審な挙動が有りましたら、コメントにて連絡いただければ幸いです。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 8
ナイス ナイス ナイス ナイス ナイス ナイス ナイス
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(20件)

内 容 ニックネーム/日時
こんにちは、以前ホイールを押した時に同時にほかのボタンが押されるのを防ぎたいという要望を出したものです。実装ありがとうございます。

現在 v2.2 b2 を使っているのですが、明らかに設定値より短い間隔でチャタリングによるクリックが発生してしまっているにもかかわらず、検知されないということが何度も起きてしまっていて、疑問に思っています。

ある程度感覚があり、かつ設定値より短い場合
(1000ms設定で カチカチと1秒未満の間隔で意識的にクリックした場合)
は ちゃんとキャンセルされているのですが、
ほとんど0msに近いようなクリックの場合、キャンセルどころかログにも残らないで スルーされてしまっているようです。
これは技術的にどうにもならないものなのですか?


と、もう1つ 質問なのですが、
readmeに書いてある

対象OS
WindowsVista/7/8/8.1/10
(32Bitのみ)
※Windows10にて確認

というのは 64bit OS(かつ64bitアプリ)では動作しないという意味ですか? それとも動作保障なし の意味ですか?

64bit OSを使ってますが、上の通り、1000ms設定の時にキャンセルされることを確認しているので OSのbit数は関係ないものかと思っていますが アプリケーションのbit数はかんけいしていたりするのでしょうか。
qpwakaba
2015/10/23 21:53
>qpwakabaさん
2.1リリース時に入れた処理で、現状では仕様です。
[History.txt]の2.1で「IntelliPointでサイドボタンにダブルクリックを割当てると機能しない問題を対策」とあるのがそれです。
どうやら諸刃の剣のようですので、次バージョンでは選択出来るようにした方が良さそうです。

それと対応OSですが、32bitのみなのは用意したバイナリの話で、64bit版Windowsで普通に機能します。
書き方が明らかに悪かったので、これも次回修正します。
ご指摘ありがとうございました。
ふぉう
URL
2015/10/31 15:41
ありがとうございます。 次のアップデートを楽しみにさせていただきます。

もう1つ要望なのですが、 自分のマウスがあれからさらに悪化してしまったらしく、右クリックしたはずが同時に左クリックされたと認識されてしまうので、
他のマウスボタンであっても指定時間未満のクリックであればキャンセルするオプションのようなものを実装していただけると非常にありがたく思います。

(もう マウスを買い替えろってことでしょうね。。)
qpwakaba
2015/11/14 14:59
いつも大変便利に使わせていただいています。
この度windows10にOSをアップグレードしたところ、縦768pxの私の端末では、設定画面のOKボタンがギリギリ押せる幅になってしまいました。
優先度は低で全く問題無いと思いますが、対応してもらえたらうれしいです。
uhihappipa
2016/04/03 01:30
XPで動くやつってもう置いてないですか?
あうん
2016/06/28 10:38
Readme.txtに
「英訳していただけたら助かります」
と書いてあったので訳してみました
(一部 https://translate.google.com/?hl=ja これ使いました

https://www.dropbox.com/s/x60lyszvfwyc578/Readme.txt?dl=0
h1j1k1
2017/11/01 17:44
>>h1j1k1さん
ありがとうございます!!
早速ダウンロードしました。
近々ちょっと手を入れて公開しようかなという気持ちなので、たぶん使わせていただくことになると思います。
ふぉう
2017/11/01 22:11
ありがとうございます。
公開を楽しみにしていただきます。

もう一つバグ報告なのですが、
C言語の関数にあるGetAsyncKeyStateを使ったプログラムだとうまくキャンセル出来ていない場合があるようです。
対策をしていただけると非常にありがたく思います。
h1j1k1
2017/11/02 19:00
>>h1j1k1さん
GetAsyncKeyStateを使ったパターンというのがどういうのかいまいち分かりません。
どういう感じなのか教えていただけませんか。
ふぉう
2017/11/14 20:09
>GetAsyncKeyStateを使ったパターン
GetAsyncKeyStateの戻り値の最上位ビットでマウスボタンを押しているかどうかが分かるので、それを利用して独自にクリック判定しているプログラムにはChatteringCancelerが機能しないということでしょうか。ドライバレベルの対応が必要になる話ですよね。
ISLe
2017/11/22 16:07
とうとう私のM570tもチャタリング発生してしまいました
そこで、再びチャタリングキャンセラーのご厄介になっています
作者様、便利なソフトありがとうございます

僭越ながら少し希望を書き込ませていただきます
現状のログとは別に、統計情報などをログ出力してくれるととてもありがたいです
例えば、1時間毎にどれほどのクリックがチャタリングキャンセラーによって破棄されたか や
統計記録中、どの程度の割合でキャンセルされたのか等です
キャンセル判定された際の詳細記録もあると助かります

ご検討いただければ幸いです

2017/12/05 12:58
大変便利なアプリの開発ありがとうございます。

さて、設定ファイルの保存先がインストールフォルダー以外になってしまう不具合が見つかりましたので報告いたします。

Readme.txtには設定ファイルなどはインストールフォルダーに生成されるという趣旨のことが書かれていましたが、実際にはChatteringCanceler.exeのプロセスのカレントフォルダーに生成されてしまっています。

例えば、C:\test1フォルダーにChatteringCanceler.exeとMouseHook.dllを配置したとします。そしてコマンドプロンプトを開いてこのフォルダーにパスを通しておきます。

>set Path=C:\test1;%Path%

次に、C:\test2フォルダーを作ってカレントフォルダーをここにします。

>md "C:\test2"
>cd "C:\test2"

そして、ChatteringCancelerを起動します。

>ChatteringCanceler

ChatteringCancelerの設定を行ったあと終了させます。

すると、設置ファイルのChatteringCanceler.iniが本来のインストールフォルダーのC:\test1ではなくChatteringCancelerのプロセスのカレントフォルダーである
C:\test2に生成されてしまっています。

当方ではコマンドプロンプト等を多用したりショートカットファイルの作業フォルダーを変更したりするため、ChatteringCancelerをUSBメモリに入れて持ち運ぶ際に設定がUSBメモリに保存されずに困っていますので、設定ファイル等の保存先をカレントフォルダーではなく実行ファイルの親フォルダーに修正していただければ助かります。


fzok4234
2018/03/11 13:33
あと、追加の要望ですが、設定ファイルなどをバーチャルストアに依存することなく、例えば
%APPDATA%\ChatteringCancelerといったユーザーアカウントごとのフォルダーに保存するタイプの、システムへの固定インストールする人向けのバージョンも作っていただければ幸いです。

というのは、現在のポータブル版をシステムに固定インストールしてマルチユーザー環境で使用する際、UACを一時的に無効にしたりするとバーチャルストアも無効になってしまうため設定が変わってしまうトラブルを引き起こします。

このため当方では、まずマスターイメージとしてとりあえずC:\Program Files (x86)\ChatteringCancelerフォルダーにファイルを配置して、構成ファイルのNTFSシンボリックリンクを各ユーザーの
%APPDATA%\ChatteringCancelerフォルダーに配置して、設定ファイルなどがこのフォルダーに生成されるようにして、バーチャルストアに依存しないマルチユーザー環境を実現しています。

当然、管理にかなりの手間がかかってしまうため、マルチユーザーに対応した固定インストール向けのバージョンがあればずいぶん助かります。

ご検討よろしくお願いします。

fzok4234
2018/03/11 13:35
fzok4234さん
報告ありがとうございます。
なるほど・・・通常(という表現もアレなのですが)わざわざカレントディレクトリを変えて起動とかはしない想定でしたので、まあそれやられたら確かにそうなるわなという感じです。
マルチユーザ向けとあわせて検討します。
というかマルチユーザで共通設定となると、たぶんレジストリを使うのが一番確実な気はするのです。
ただまあ、今はMSもあまりレジストリを推奨してないようですが。
ふぉう
2018/03/20 00:04
回答ありがとうございます。

現在2.2β2では32bit版のみのためバーチャルストア機能によりだましだましマルチユーザー対応できますが、今後64bit版を復活させるとなるとバーチャルストア機能が働かないため否応なくアプリ側でマルチユーザーに対応させたバージョンを作らざるを得なくなってきます。

その場合は各ユーザーごとの設定としてChatteringCanceler.iniやログなどのファイルをカレントユーザーのプロファイルフォルダー以下に保存すればいいと思います。理想は%APPDATA%以下、つまりC:\Users\<ユーザー名>\AppData\Roamingフォルダーに会社名のフォルダーを作り、さらにその中にアプリ名のフォルダーを作ってそこにファイルを保存することです。Roamingフォルダーのパスは確か取得用のAPIがあったはずです。APIが使えないorわからない場合は環境変数%APPDATA%を展開しても取得できます。

また、全ユーザーの共通設定を保存する場所は%ALLUSERSPROFILE%以下、すなわちC:\ProgramData以下に<会社名>\<アプリ名>フォルダーを作ってここに保存することになります。当然この全ユーザー共通設定は操作に管理者権限が必要となります。

このように固定インストール版の場合は、所定のフォルダーにiniファイルなどを保存する形でよいと思います。無理にレジストリを使用してしまうと、ユーザー側で設定のバックアップ・リストアが面倒になってしまいます。
fzok4234
2018/03/20 13:15
なお、現在の実行ファイルと同じフォルダーにiniファイルやログなどを保存するバージョンは、USBメモリーなどにインストールして持ち歩くためのポータブル版として存続させるのがいいです。

また、固定インストール版を作る場合はInnoSetupなどのインストーラーを用いて配布すればよいでしょう。
fzok4234
2018/03/20 13:21
ユーザー設定ファイルをカレントディレクトリに生成する仕様で、共通のフォルダに配置するのも個別のフォルダに配置するのもユーザー毎に自由に選べるので良いと感じます。

実行ファイルのあるフォルダに設定ファイルが作成されなくて困るのではあれば、実行ファイルのフルパスを取得してカレントディレクトリを実行ファイルのあるフォルダに変更して実行するバッチファイルを作って使えばChatteringCancelerに限らず同様の仕様を持つアプリケーションへの対策になります。

startコマンドでカレントディレクトリを変更するバッチファイルを介してChatteringCancelerを起動するようにすれば、構成ファイルの配置を変更するのにいちいちユーザー毎に操作する必要もないですよ。
ISLe
2018/03/29 17:36
一応、暫定的にカレントフォルダーをインストールフォルダーに変更してからChatteringCancelerを起動するバッチファイルを使って運用しています。

でも、Readme.txtには「設定は、インストールディレクトリにあるiniファイルへ保存されます。」と書かれているので、やはりReadme.txtを修正するかChatteringCanceler.exe側の仕様を変更した方がよいと思います。

fzok4234
2018/03/30 12:49
OneDriveで設定ファイルをリアルタイムに同期できなくなるのはデメリットと感じますが、間違った仕様に基づいた使い方だと言われればそうですね。
ISLe
2018/03/30 16:52
いちおうバッチファイルのサンプルを書いておきます。
投稿用に用意したもので、わたしが実際に使っているものとは異なります。

---
@rem 実行ファイルのあるフォルダをカレントにして起動
@echo off
setlocal
set "APP_PATH=.\ChatteringCanceler\ChatteringCanceler.exe"
call :GETPATH "%APP_PATH%"
start "" /d "%GETPATH%" "%APP_PATH%"
goto :EOF

:GETPATH
set "GETPATH=%~dp1"
goto :EOF
---

---
@rem 実行ファイルはプログラムフォルダに、設定ファイルはユーザー毎のアプリケーションデータフォルダに
@rem (データフォルダが無ければ作る処理は省略)
start "" /d "%APPDATA%\ChatteringCanceler" "C:\Program Files (x86)\ChatteringCanceler\ChatteringCanceler.exe"
---
ISLe
2018/03/30 17:01

コメントする help

ニックネーム
URL(任意)
本 文
ChatteringCanceler2.2 β2リリース ヨン様と呼ばないで!/BIGLOBEウェブリブログ
文字サイズ:       閉じる