カードリーダーのバックグラウンドで実行されるウィンドウサービスを構築しようとしています。テキストボックスでカードのデータを取得します。私の質問は次のとおりです。誰かがカードリーダーでカードをスワイプすると、ウィンドウサービスWINFORMがテキストボックスでカードのデータを取得する必要があります。どうすればこれを達成できますか。
また、
カードのスワイプ時にWINFORMを実行する方法を誰かが教えてくれれば、それもうまくいくでしょう
ありがとう
カードリーダーのバックグラウンドで実行されるウィンドウサービスを構築しようとしています。テキストボックスでカードのデータを取得します。私の質問は次のとおりです。誰かがカードリーダーでカードをスワイプすると、ウィンドウサービスWINFORMがテキストボックスでカードのデータを取得する必要があります。どうすればこれを達成できますか。
また、
カードのスワイプ時にWINFORMを実行する方法を誰かが教えてくれれば、それもうまくいくでしょう
ありがとう
Windows サービスは、ユーザーにいかなる種類の UI も表示することは想定されていません。ユーザーからの入力を受け取らず、出力やステータスを表示しない完全なバックグラウンド タスクとして実行されます。ユーザーと「対話」するサービスが必要な場合、通常はプロジェクトを 2 つの異なるプログラムに分割します。1 つはサービス自体で、バックグラウンド処理を行う UI のないものと、通常のユーザー アプリです。 、おそらくログイン時に実行され、通知を表示し、サービスと通信します。また、サービスはログオフとログオンに耐え、特定の時間に多数のユーザーがログインしている可能性があることも考慮してください。そのため、ダイアログを誰かに表示しても意味がありません。
私の提案は、サービスを通常のプログラムに変えて、インストーラーが起動時に実行するように構成し、カードリーダーの監視と、ユーザーの詳細を尋ねるポップアップの表示を行うことです。監視以外のバックグラウンド作業はなく、フォームが絶対に必要な場合、ユーザーがログインせずに監視する意味がないため、サービスは最良の選択ではないと思います.
私は 2 種類のカード リーダーを見てきました。
1 - キーボード ポートに接続し、キーボードとして機能します (USB ポートに接続することもできますが、キーボードをシミュレートします)。カードをスワイプすると、現在フォーカスがあるアプリケーションとテキスト フィールドに情報が書き込まれます。
2 - ある種のハードウェア ドライバーを持っています (ほとんどの場合、USB ドライバー、おそらくシリアルまたはその他)。
どちらを持っているかわからない場合は、メモ帳を開いて、フォーカスがあることを確認し、カードをスワイプします。詳細がメモ帳に表示される場合は、#1 です。そうでない場合は、おそらく#2があります
あなたのリーダーが#1の場合、TextboxのTextChangedイベントにコードを入れて、必要なことを行うことができます(アプリケーションを構築していると述べたように、アプリケーションにコードを追加できると思います)。
リーダーが #2 の場合、使用するドライバーに大きく依存します。統合できる API を提供するものもありますが、ドキュメントを見つける必要があります。
カードリーダーのモデル番号とメーカーはありますか?