2017年9月29日金曜日

近況

こちらは最近放置してすみません。
もっと開発に関する情報を載せたいのですが
最近はPCが壊れたり、新しい仕事先の勉強など
色々と忙しく、なかなか時間が取れない現状です。

W10Wheelに関しても、
誰からもポストしてもらえないので
Blogとかは書き込みにくいのでしょうか。
(関心がある人自体が少ないのかもしれませんが)

試しに、Twitterアカウントを作ってみたので
何かご意見がある人は、気軽にメッセージを投げてください。
https://twitter.com/ykon0x1

14 件のコメント:

  1. 数日前にここに辿り着きました。
    Windows10でグローバルフックの仕様が変わったようで類似品がことごと
    く駄目になり、自前で作り始めたのですが、中止できそうです。ありがと
    うございます。
    ソースも公開されているので、少し挙動がへんなところを調べようとも思っ
    たのですが、F#とScalaというモダンな環境なのでいったん断念
    まだ使いはじめなので、しばらくオプションもデフォルトに近い状態で使っ
    ていろいろ試そうと思います。

    返信削除
    返信
    1. > Windows10でグローバルフックの仕様が変わったようで
      私も正にその理由で作り始めました。

      > 鼓動がへんなところ
      是非とも修正してパッチを投げてください。
      詳細を教えていただければ、
      ポインタを示すぐらいならできると思います。

      > F#とScalaというモダンな環境
      中身の作りは対してモダンでもありません
      全く関数型として作れていません。

      削除
    2. ちなみに.Netでつくることでグローバルフックの問題が回避できるのでしょうか。この手のツールはNativeのほうが融通ききそうですけど...

      削除
    3. .NETは特に関係ありません、実際にJNAで動いています。
      「Windows 10」はグローバルフックの時間制限が厳しくなったようです。
      W10Wheelでは、スレッドを使って制限を回避しています。
      恐らく既存のプログラムもスレッドを使うように改良すれば動くはずです。

      削除
  2. やっぱりこれも不調
    SetPointとは衝突しないということだったがしたし、Windows update後に? Win7でもおかしくなってしまった。Win7では類似品のうちts.exeだけ動いた。(類似品とはmp,wheeball,w10wheel.net。何年も使っていたのだけど..)
    とりあえずELECOMの大玉を買ってきたのでしばらくはそれでしのぎます。
    Global hookはもう駄目なのかなあ。

    返信削除
    返信
    1. 少なくともこちらの環境では、SetPointと共存して安定しています。
      「ボタンの切り替え」やボタン3に「中央ボタン」を割り当てても問題ありません。

      環境:
      Windows 10:
      バージョン: 1709 (Fall Creators Update)
      OS ビルド: 16299.64
      SetPoint: (Marble Mouse)
      コントロールセンター バージョン: 6.67.83
      ドライバ バージョン: 5.90.41

      削除
  3. .net版をWindows10で使用させて頂いています。
    マイクロソフトOneNoteを使用すると、クリックしっぱなしのバグが出ます。
    回避出来る設定などがあれば教えて頂けたら嬉しいです。

    返信削除
    返信
    1. OneNoteを使っていないので、何とも言えませんが、
      初めて起動して、少し入力して見た限りは
      特に問題が見つかりませんでした。

      W10Wheelの設定値と再現手順をお願いします。

      削除
  4. 設定デフォルト(解凍 → exe で立ち上げた、素のまま) で出ますね。
    クリックでカーソルを移動するだけであれば問題ないのですが、例えば
    コピーしようとして範囲選択するとボタンを離しても押しっぱなしの
    状態になります。

    カーソルは見えませんがOneNoteのウィンドウから外した別ソフトで
    クリックしてから戻るとボタンを復旧します。(が、その後で範囲選択
    すると再現します)

    返信削除
    返信
    1. ありがとうございます。
      こちら、OneNoteの使い方を理解していないのですが、
      以下の手順で試しても再現しません。

      1. W10Wheel.NET-2.7 (デフォルト設定)
      2. OneNoteを起動 (16001.12527.20128.0)
      3. 新しいノートブックを作成
      4. セクションのタイトルを入力
      5. 新しいページに入力
      6. コピー&ペースト (範囲選択)

      このソフトウェアですが、Officeと同じで全体的に重たい感じですね。
      文字だけではなく、色々と埋め込んでみたりすると
      ハードウェアの性能によっては、
      処理が遅れたりして問題が発生するのかもしれません。

      削除
  5. すいません、素晴らしいユーティリティを開発いただいた方へのお礼無しでレポートしてしまいました。ごきげんに使っています。ありがとうございました。

    当方のOne Noteですが
    Office 365 Pro Plus
    Ver.1902 (Build 11328.20368)
    W10Wheel.NETバージョン2.7です。

    新規ノート作成で試しました。
    1. 他のテキストエディタで文章作成して (200文字程度)
    2. ノート内で右クリックでペースト → ○(正常)
    3. その文章を範囲選択 → × (掴みっぱなし。範囲選択を完了できない)

    OneNote内に貼り付けたオブジェクトをクリックで選択 → 左ボタン長押し → ボタンを離すの操作ではオブジェクトは移動し、そこに止まります。が、マウス左ボタンを離してもテキスト選択が始まり報告の症状が出ます。

    なにか手がかりになる操作があるようでしたらやってみますのでお申し付け下さい。

    返信削除
    返信
    1. なかなか時間が確保できず、遅くなり申し訳ありません。
      Officeに付属していたOneNote 2016(64bit版)では、確かに動作が不正になることを確認できました。
      https://www.softantenna.com/wp/tips/onenote-2016-download-2/
      修正できるかどうかは分かりませんが、この状態での動作を調べてみます。

      現状、Microsoft Storeからインストールできる、
      OneNote(for Windows 10)では動作に問題ないようです。
      https://www.microsoft.com/ja-jp/p/onenote/9wzdncrfhvjl

      削除
    2. デバッグログを見て調べましたが、残念ながらこれは正常な動作でした。
      W10WheelのLeft/Rightのトリガーは、スクロールのトリガー動作を検出するため、最初のMouseDown/Upのイベントをなかったことにして、トリガー動作でないことが確認できてから、再度、MouseDown/Upのイベントを送信しています。
      これは普通のソフトウェアであれば、最初のMouseDown/Upのイベントは届かないので上手く機能します。
      しかし、「OneNote 2016」はマウスの入力を通常のAPIで検出しているのではなく、RawInputもしくはDirectInputを使っているのか、最初のMouseDown/Upも届いているようです。
      これのせいで、二重にMouseDown/Upのイベントが届き、MouseDownとUpの順序が崩れるため、MouseDownした状態のままとなり、クリックしたが最後で選択状態が続くこととなります。

      マウスのLeft/Rightをトリガーとして使うには他に方法がないため、この動作は修正することができません。
      回避方法としては、Left/Rightのトリガーを使うことを止めて、MiddleやX1/X2などの別のボタンをトリガーとすることです。
      他には、MicrosoftにこのMouseイベントの検出方法を改めてもらうしかありません。
      既に、OneNote(for Windows 10)では、通常のAPIでの検出方法に変更しているようです。

      削除
  6. いえ、わざわざ調べていただきありがとうございました。社内のグループウェアのOffice付属なのであまり自由は効きませんが、原因がわかっただけでも十分です。トリガーのボタン設定で回避できるかどうかやってみます。

    返信削除