「スキャン」ボタンを押してネットワークフォルダに自動スキャンする

次のタスクは:

スキャナーのボタンが押されたときに自動スキャンを実装します。 結果のマテリアルはネットワークフォルダーに移動し、一意の名前を持つ必要があります。 スキャナーは稼働中のマシンに接続されています。すべてのスキャン手順は、Windowsを実行しているこのコンピューターで作業している人の注意をそらすものではありません。



Linuxでは、このタスク数行のコードとすばらしいSaneユーティリティで実行されます。 Cウィンドウははるかに複雑です。 UMAX Astra 4700スキャナーの標準ソフトウェアでは、そのようなことはできませんでした。 インターネットでの検索では結果が得られませんでしたが、コマンドラインからスキャンできる単純なユーティリティ、たとえばiCopyIrfanViewがありました 。 残念ながら、それらのどれもスキャナーボタンを押すためのハンドラーとして静かに登録できず、静かに目的のフォルダーをスキャンできませんでした。 スキャナーからアプリケーションをイベントハンドラーとして登録する方法の説明に出会ったので、特に.NET Framework内のJscriptコンパイラーを使用して、作成したスクリプトを実行可能ファイルにコンパイルできるため、JavaScriptで小さなプログラムを作成することにしました。 コンソールスキャナーとして、少しバグの多いiCopyが選択されましたが、これはコマンドラインから一部のキーを認識しませんが、松葉杖によって解決されます。



.NET Frameworkをインストールし、jsc.exeアプリケーションを見つけてコマンドプロンプトで実行する場合、スクリプトのコンパイルは可能な限り簡単です。



jsc.exe /target:winexe scan.js







コンパイルされたscan.exeアプリケーションを取得します。 「-reg」キーはシステムにプログラムを登録します。スキャナーボタンからのメッセージハンドラとして、「-unreg」キーはすべてを返します。 システムに登録した後、Windowsを再起動する必要があります。 プログラムには、ボタンクリックハンドラから受信したメッセージを目的のアプリケーションと比較できる構成ファイルがあります。 セットアップを簡単にするために、レジストリ全体でイベント識別子を検索しないようにログモードがあります。 スキャナーのボタンをクリックした後、アプリケーションを選択し、ログを見て、ボタンクリックイベントの2番目のパラメーターIDを確認し、構成ファイルに書き込みます。



使用法:

scan.exe -reg //レジストリにプログラムを登録します

scan.exe -unreg //レジストリからプログラム情報を削除します

scan.exe param1 param2 // param2に従ってアプリケーションを起動します



構成ファイル(スキャナー用):

  1. [デバッグ]
  2. debugflag = true
  3. logfile = debug.log
  4. [フラグ]
  5. mail_flag = / StiEvent:{F61F8581-6105-11D6-AAF8-0050BA1ACA6F};
  6. scan_flag = / StiEvent:{F61F8582-6105-11D6-AAF8-0050BA1ACA6F};
  7. print_flag = / StiEvent:{F61F8583-6105-11D6-AAF8-0050BA1ACA6F};
  8. [アプリケーション]
  9. mail_app =
  10. scan_app = "C:\ Program Files \ iCopy \ iCopy.exe" /f:"\\server\scanned$date$.jpg "/ r:150
  11. print_app = "C:\ Program Files \ iCopy \ iCopy.exe" / c
ソースコード



TODO: プログラムでアーカイブをダウンロードする



All Articles