예제 #1
0
        private void LoadKeys()
        {
            try
            {
                _selectedDogClass    = null;
                panelPrivate.Enabled = false;
                dogListTree.Nodes[0].Nodes.Clear();
                string appId = this.tbAppID.Text.Trim();
                long[] keyHandles;
                long   keyNum = 0;
                long   ret    = NT158App.NT158Find(appId, out keyHandles, ref keyNum);
                if (ret == 0)//成功
                {
                    for (int i = 0; i < keyNum; i++)
                    {
                        try
                        {
                            DogClass dogobj = new DogClass();
                            dogobj.appId     = appId;
                            dogobj.keyHandle = keyHandles[i];
                            string uid = "";
                            ret = NT158App.NT158GetUid(keyHandles[i], ref uid);
                            if (ret != 0)
                            {
                                uid = "获取失败:" + GetError(ret);
                            }
                            dogobj.uid = uid;

                            Node node = new Node("NT158_" + (i + 1));
                            node.Tag = dogobj;
                            Node appIdNode = new Node("识别码:" + dogobj.appId);
                            node.Nodes.Add(appIdNode);
                            Node uidNode = new Node("硬件序列号:" + dogobj.uid);
                            node.Nodes.Add(uidNode);
                            dogListTree.Nodes[0].Nodes.Add(node);
                        }
                        catch (Exception ex)
                        {
                            log.Error(keyHandles[i] + "加载异常:", ex);
                            MessageBox.Show(keyHandles[i] + "加载异常:" + ex.Message);
                        }
                    }
                    dogListTree.Nodes[0].Expand();
                }
                else//失败,或未找到
                {
                    MessageBox.Show("未找到任何加密狗设备,错误:" + GetError(ret));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("查找设备异常:" + ex.Message);
                log.Error("查找设备异常:", ex);
            }
        }
예제 #2
0
 private void dogListTree_NodeClick(object sender, TreeNodeMouseEventArgs e)
 {
     try
     {
         if (e.Node.Tag is DogClass)
         {
             DogClass dc = (DogClass)e.Node.Tag;
             long     pin1, pin2, pin3, pin4;
             if (long.TryParse(tbPin1.Text.Trim(), out pin1) &&
                 long.TryParse(tbPin2.Text.Trim(), out pin2) &&
                 long.TryParse(tbPin3.Text.Trim(), out pin3) &&
                 long.TryParse(tbPin4.Text.Trim(), out pin4))
             {
                 long ret = NT158App.NT158Login(dc.keyHandle, pin1, pin2, pin3, pin4);
                 if (ret != 0)
                 {
                     log.Error("登陆加密狗异常:" + GetError(ret));
                     MessageBox.Show("登陆加密狗异常:" + GetError(ret));
                     return;
                 }
                 panelPrivate.Enabled = true;
                 _selectedDogClass    = dc;
                 lbDevNo.Text         = _selectedDogClass.uid;
                 DoReadPrivate();
             }
             else
             {
                 MessageBox.Show("密钥格式必须为long数据!");
             }
         }
         else
         {
             panelPrivate.Enabled = false;
         }
     }
     catch (Exception ex)
     {
         log.Error("执行操作异常:", ex);
         MessageBox.Show("执行操作异常:" + ex.Message);
     }
 }