ユーザーがバーコードをスキャンし、アプリケーションがバーコードをデコードしてから、データベースに行を挿入する、単純なWindowsフォームアプリケーションを試しています。基本的なトラックアプリケーション。Motorolaスキャナーを手に取り、Windows開発用のSDKをダウンロードしました。「付録ASCANNERSDK APIを使用した簡単なアプリケーションの作成」は、開発者ガイド(http://support.symbol.com/support/search.do?cmd=displayKC&docType=kc&externalId=14978402apdf&sliceId )から始めるのに適しているように思われましたが、読みました。 =&dialogID = 311240750&stateId = 1%200%20311224446)。5つのコンソールの例は正常に機能していますが、Windowsフォームアプリケーションを機能させることができません。OnBarcodeイベントがトリガーされることはありません。私はこのビデオをフォローしました(http://www.youtube.com/watch?v=GfIWWUw4YSc&t=15m47s)モトローラによるステップバイステップ。
これと同様の問題が発生しているようです。MotorolaバーコードスキャナーSDKイベントC#ですが、USB接続を使用しています。
サンプルコードが.net2.0で作成されたものであることに気付いたので、プロジェクトを再コンパイルしようとしましたが、それでも機能しませんでした。次に、CCoreScannerClassをCCoreScannerに変更して、埋め込み相互運用機能が機能するようにしましたが、それも役に立ちませんでした。サンプルコードは次のとおりです。
using CoreScanner;
namespace Scanner_WindowsFormsApplication
{
public partial class Form1 : Form
{
CCoreScanner cCoreScanner;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
void OnBarcodeEvent(short eventType, ref string pscanData)
{
string barcode = pscanData;
this.Invoke((MethodInvoker)delegate { textBox1.Text = barcode; });
}
private void button1_Click(object sender, EventArgs e)
{
try
{
//Instantiate CoreScanner Class
cCoreScanner = new CCoreScanner();
//Call Open API
short[] scannerTypes = new short[1];//Scanner Types you are interested in
scannerTypes[0] = 1; // 1 for all scanner types
short numberOfScannerTypes = 1; // Size of the scannerTypes array
int status; // Extended API return code
cCoreScanner.Open(0, scannerTypes, numberOfScannerTypes, out status);
// Subscribe for barcode events in cCoreScannerClass
cCoreScanner.BarcodeEvent += new _ICoreScannerEvents_BarcodeEventEventHandler(OnBarcodeEvent);
// Let's subscribe for events
int opcode = 1001; // Method for Subscribe events
string outXML; // XML Output
string inXML = "<inArgs>" +
"<cmdArgs>" +
"<arg-int>1</arg-int>" + // Number of events you want to subscribe
"<arg-int>1</arg-int>" + // Comma separated event IDs
"</cmdArgs>" +
"</inArgs>";
cCoreScanner.ExecCommand(opcode, ref inXML, out outXML, out status);
Console.WriteLine(outXML);
}
catch (Exception exp)
{
Console.WriteLine("Something wrong please check... " + exp.Message);
}
}
}
}
開発者ガイドを読んだところ、「スキャナーがバーコードをキャプチャするとBarcodeEventがトリガーされます。BarcodeEventsを受信するには、アプリケーションはSUBSCRIBE_BARCODEイベントタイプでREGISTER_FOR_EVENTSメソッドを実行する必要があります。」私はc#を初めて使用するので、これが何を意味するのか、そしてそれが例にどのように適用されるのかはよくわかりません。
https://stackoverflow.com/users/68043/scottがこのスレッドを読んだ場合、onBarcodeEventをスレッドで機能させる方法を知りたいです:イベントから呼び出されたときにダイアログがハングする