トップページ > 記事閲覧
GetInputCharでバーコードリーダーの入力を正常に取得できない
名前:was-blue.0793 日時: 2020/04/25 01:13

入力が文字入力となるバーコードリーダーを使ってDXライブラリにバーコードを読み込ませようとしています。 この時、GetInputChar関数を使ってバーコードを受け取ろうとしていますが、連続で同じ文字が来ると同じ文字が入力できません。 メモ帳での入力では正常に連続で同じ文字を入力できています。 GetInputChar関数は一定間隔をあけないと同じ文字を連続入力できない仕様でしょうか?
メンテ

Page: 1 |

Re: GetInputCharでバーコードリーダーの入力を正常に取得できない ( No.1 )
名前:管理人 日時:2020/04/27 01:07

> GetInputChar関数は一定間隔をあけないと同じ文字を連続入力できない仕様でしょうか? はい、Windows10 のスクリーンキーボードで文字を入力すると何故か同じ文字が2回連続で 入力されるという現象が発生したため、苦肉の策として短時間に同じ文字が入力されたら 無視する処理を追加しています バーコードリーダーでの入力に問題があるとのことですので、この処理を無効にするための 関数を追加しましたので、よろしければその関数を追加したこちらのバージョンを ダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) 以下の関数を追加しました // Windows10 で短時間に連続して同じ文字が入力された場合の無効扱いにする時間を設定する //  MilliSecond : この引数で指定するミリ秒以内に連続して同じ文字が入力された場合に無効にする //          ( MilliSecond の値をマイナスにするとデフォルトの設定に戻る ) int SetWindows10_WM_CHAR_CancelTime( int MilliSecond ) ; デフォルトでは 40ミリ秒以内に同じ文字が入力された場合に文字入力を無視しているのですが、 この『40ミリ秒』にあたる値をこの関数で設定することができます SetWindows10_WM_CHAR_CancelTime( 0 ); のように引数を 0 で渡して呼び出すことで『短時間に連続して同じ文字が入力された場合の無効扱いにする』処理を 無効化できますので、よろしければお試しください m(_ _)m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存