项目需要写个扫描的程序,原来是用VB做的,用的也是很好!不知道是不是客户心血来潮,现在竟然要加到.NET平台下,用C#来实现。

早就听说了C#对串口的支持不是很好,一用还真是的 。

找到了MSComm.ocx 之后把他COPY到SYSTEM32下面,写了个注册表文件,把这个给注册一下
REGEDIT 
HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. 

// The MsComm32 Control License follows: 
HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
以.reg的文件名保存,双击打开即可注册。

然后在窗体的form_load事件中加入如下代码:
 1 try
 2             {
 3                 axMSComm2.CommPort=1;
 4                 this.axMSComm2.PortOpen=true;    
 5             }
 6             catch
 7             {
 8                 cm.Msg("串口通讯失败!");
 9             }
10             finally
11             {
12 }
值得注意的是:加入两个MSComm控件,你会发现这里MSComm的默认名字是axMSComm,有点奇怪吧!

然后再在axMSComm2_OnComm 事件中加入如下代码:
if(axMSComm2.CommEvent==2)
                {
                    
this.ProEAN.Text=ProEAN.Text+axMSComm2.Input;
               }
这里是用2口扫描,这个时候一定要注意把axMSComm2 的RTSEnable这个属性设置为:1。
按道理来说这个时候应该可以进行扫描,至于其他的业务处理,就需要另外加了。
但是,我觉得C#的支持不好就体现在这里。大多数的情况下扫描的很好,但是有的时候老是连不上,老是catch,真搞不明白!



相关文章:

  • 2022-12-23
  • 2022-01-29
  • 2021-07-05
  • 2022-12-23
  • 2021-09-21
猜你喜欢
  • 2021-12-04
  • 2021-04-27
  • 2021-07-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案