【问题标题】:ZKemKeeper: Events not triggeringZKemKeeper:事件未触发
【发布时间】:2016-09-24 19:19:48
【问题描述】:

我正在构建一个 C# windows 应用程序来获取拇指印象并将其显示在表单上。我已成功将应用程序连接到扫描仪(ZKTeco TX628)。但是,事件并未触发。

这是我的代码:-

    ZKFPEngX fp = new ZKFPEngX();
    zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
    bool bIsConnected = false;

    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {   
        bIsConnected = axCZKEM1.Connect_Net("192.168.1.201", Convert.ToInt32(4370));

        if (bIsConnected == true)
        {
            if (axCZKEM1.RegEvent(1, 65536))
            {
                this.axCZKEM1.OnFinger += new zkemkeeper._IZKEMEvents_OnFingerEventHandler(axCZKEM1_OnFinger);
                this.axCZKEM1.OnConnected += new _IZKEMEvents_OnConnectedEventHandler(axCZKEM1_OnConnected);
                this.axCZKEM1.OnVerify += new zkemkeeper._IZKEMEvents_OnVerifyEventHandler(axCZKEM1_OnVerify);
            }
        }
        else
        {
            int idwErrorCode=-1;
            this.axCZKEM1.GetLastError(ref idwErrorCode);
            MessageBox.Show("Unable to connect the device,ErrorCode=" + idwErrorCode.ToString(), "Error");
        }
    }

    private void axCZKEM1_OnFinger()
    {
        label1.Text = "OK";
        byte[] TmpData = new byte[700];
        int with = 0;
        int lenth = 0;
        bool fulimage = false;
        string path = "";
        byte a=1;
        axCZKEM1.CaptureImage(fulimage, ref with, ref lenth, ref a, path);
        MessageBox.Show ("RTEvent OnFinger Has been Triggered");
    }

    private void axCZKEM1_OnVerify(int uid)
    {
        label1.Text = "Verified";
    }

    private void axCZKEM1_OnConnected()
    {
        label1.Text = "Connected";
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.axCZKEM1.EnableDevice(1, true);

        this.axCZKEM1.Disconnect();
        label1.Text = "Disconnected";
    }

【问题讨论】:

    标签: c#


    【解决方案1】:
                 bIsConnected = axCZKEM1.Connect_Net("192.168.1.201", Convert.ToInt32(4370));
    
                if (bIsConnected == true)
                {
                    Trace.subWriteInLogFile(string.Concat(DateTime.Now.ToString(formatDateLog), "| " + "Connected"));
    
                    iMachineNumber = 1;//In fact,when you are using the tcp/ip communication,this parameter will be ignored,that is any integer will all right.Here we use 1.
                    if (axCZKEM1.RegEvent(iMachineNumber, 65535))//Here you can register the realtime events that you want to be triggered(the parameters 65535 means registering all)
                    {
                        this.axCZKEM1.OnFinger += new zkemkeeper._IZKEMEvents_OnFingerEventHandler(axCZKEM1_OnFinger);
                        this.axCZKEM1.OnVerify += new zkemkeeper._IZKEMEvents_OnVerifyEventHandler(axCZKEM1_OnVerify);
                        this.axCZKEM1.OnAttTransactionEx += new zkemkeeper._IZKEMEvents_OnAttTransactionExEventHandler(axCZKEM1_OnAttTransactionEx);
                        this.axCZKEM1.OnFingerFeature += new zkemkeeper._IZKEMEvents_OnFingerFeatureEventHandler(axCZKEM1_OnFingerFeature);
                        this.axCZKEM1.OnEnrollFingerEx += new zkemkeeper._IZKEMEvents_OnEnrollFingerExEventHandler(axCZKEM1_OnEnrollFingerEx);
                        this.axCZKEM1.OnDeleteTemplate += new zkemkeeper._IZKEMEvents_OnDeleteTemplateEventHandler(axCZKEM1_OnDeleteTemplate);
                        this.axCZKEM1.OnNewUser += new zkemkeeper._IZKEMEvents_OnNewUserEventHandler(axCZKEM1_OnNewUser);
                        this.axCZKEM1.OnHIDNum += new zkemkeeper._IZKEMEvents_OnHIDNumEventHandler(axCZKEM1_OnHIDNum);
                        this.axCZKEM1.OnAlarm += new zkemkeeper._IZKEMEvents_OnAlarmEventHandler(axCZKEM1_OnAlarm);
                        this.axCZKEM1.OnDoor += new zkemkeeper._IZKEMEvents_OnDoorEventHandler(axCZKEM1_OnDoor);
                        this.axCZKEM1.OnWriteCard += new zkemkeeper._IZKEMEvents_OnWriteCardEventHandler(axCZKEM1_OnWriteCard);
                        this.axCZKEM1.OnEmptyCard += new zkemkeeper._IZKEMEvents_OnEmptyCardEventHandler(axCZKEM1_OnEmptyCard);
                        Trace.subWriteInLogFile(string.Concat(DateTime.Now.ToString(formatDateLog), "| " + "Events registred"));
    
                    }
                }
                else
                {
                    axCZKEM1.GetLastError(ref idwErrorCode);
    
                    Trace.subWriteInLogFile(string.Concat(DateTime.Now.ToString(formatDateLog), "| " + "Unable to connect the device, ErrorCode = " + idwErrorCode.ToString()));
    
                }
    

    【讨论】:

    • 你知道吗,我注册了ondisconnected事件但它没有触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2019-01-31
    • 2013-04-09
    • 2015-07-25
    • 2017-06-25
    • 2012-02-21
    相关资源
    最近更新 更多