怎样安装MSCOMM控件,谢谢!(100分)

  • 主题发起人 主题发起人 学习123
  • 开始时间 开始时间

学习123

Unregistered / Unconfirmed
GUEST, unregistred user!
非常感谢!装了好几回,都不行.唉
 
唉,就这里就有特别多怎么安装的贴子。搜索一下就好。
 
首先在VB安装目录下找到下列三个文件:
  Mscomm.reg, Mscomm32.ocx,Mscomm32.dep ,
  把这三个文件拷贝到Windows的system目录下(注意WinNT下是System32)。
然后用Windows下的注册工具regsvr32注册该OCX控件,例如:
  Regsvr32 … system目录/Mscomm32.ocx .
  注册成功后用记事本打开Mscomm.reg,可以看到类似下面的内容:
  [HKEY_CLASSES_ROOT/Licenses/4250E830-6AC2-11cf-8ADB-00AA00C00905]
@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun",为了能正确使用该控件,
需要修改注册表的信息,在注册表的在HKEY_CLASSES_ROOT/Licenses下建一主键:
4250E830-6AC2-11cf-8ADB-00AA00C00905,主键的内容为
kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun.
  至此已经完成了控件的系统注册工作,剩下的工作是在Delphi中导入这个ActiveX控件,
进入Delphi环境在Component菜单下选Import ActiveX Control,这时在列表中可以看到
Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。在ActiveX
控件页上可以看到一个电话为图标的控件,这就是MSComm控件。这样就可以象在VB中一样方
便得使用MSComm控件了。

如果,你机器上装了VB的话,在Delphi中直接安装即可
Component|Install ActiveX Control..
 
Regsvr32 xxxx.ocx
 
问题: 哪位大虾有SPCOMM的完整应用例子(只有读 写不必)? ( 积分: 100 )
分类: 局域网 / 通讯

来自: PLWang, 时间: 2001-04-18 20:51:00, ID: 508492
要求对各属性 事件 设置 解释 MSCOMM的也行

来自: WorldWalker, 时间: 2001-04-18 21:13:00, ID: 508542
SPCOMM在计算机日报上有例子,MSCOMM可以参考VB5/6的帮助文件

来自: lanchong, 时间: 2001-04-18 21:23:00, ID: 508564
procedure TFCOMM.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;


BufferLength: Word);


var

i:integer;


begin


viewstring:="";


move(buffer^,pchar(@rbuf^),bufferlength);


for i:=1 to bufferlengthdo


viewstring:=viewstring+inttohex(rbuf,2)+"
";


viewstring:="接受"+viewstring;


memo1.lines.add(viewstring);


memo1.lines.add("");


end;




来自: jnleis, 时间: 2001-04-20 10:32:00, ID: 510350
能否给发一个mscomm空间??多谢!!

来自: jnleis, 时间: 2001-04-20 10:34:00, ID: 510353
sorry !!我的地址忘了告诉你jnleis@263.net

来自: rhine, 时间: 2001-04-27 15:13:00, ID: 517567
要mscomm还是Spcom,我有后者.

来自: PLWang, 时间: 2001-04-27 16:56:00, ID: 517795
TO rhine:有的话先寄过来看看
哪位大虾有MSComm的实际操作经验过来看看这个错误:
procedure TFormMain.FormCreate(Sender: TObject);

begin

MSComm1.CommEvent:=MSCOMM_EV_RECEIVE;

end;


[Error]UnitMain.pas(78):undeclared identifier: 'MSCOMM_EV_RECEIVE'
MSComm在属性当中如何设置OnComm的触发事件 上面那个EV_RECEIVE我是从一本VB的书
里看来的


来自: Jams, 时间: 2001-04-27 16:59:00, ID: 517805
>>

来自: PLWang, 时间: 2001-04-27 17:01:00, ID: 517810
另外再来看看这句有什么问题:
Mystr:= InttoHex(StrtoInt(MSComm1.Input));


来自: rhine, 时间: 2001-05-11 8:43:00, ID: 527093
这是我用过的一个例子,只要Spcomm的端口等没问题,可以正常接收:

procedure TForm1.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;BufferLength: Word);

var
s: string;

begin

SetLength(S, BufferLength);
//接收RS232的数据并显示Memo1上。
Move(Buffer^, PChar(S)^, BufferLength);

Memo1.Lines.Add(S);

Memo1.Invalidate;

end;




来自: luyanmo, 时间: 2001-08-29 11:49:00, ID: 608733
gz

来自: honestman, 时间: 2001-08-29 11:54:00, ID: 608741
看http://www.ccw.com.cn/htm/app/aprog/01_1_8_4.asp。

来自: honestman, 时间: 2001-10-25 20:12:00, ID: 690480
Delphi中串口通信的实现

河南省计算中心 张海航

--------------------------------------------------------------------------------


Delphi是一种具有功能强大、简便易用和代码执行速度快等优点的可视化快速应用开发工具
,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选择 Delphi作为
开发工具编制各种应用程序。但是,美中不足之处是 Delphi没有自带的串口通信控件,在
它的帮助文档里也没有提及串口通信,这就给编制通信程序的开发人员带来许多不便。

目前,利用 Delphi实现串口通信的常用的方法有 3种:一是利用控件,如 MSCOMM控件和
SPCOMM控件;二是使用 API函数;三是调用其他串口通信程序。其中利用 API编写串口通
信程序较为复杂,需要掌握大量的通信知识。相比较而言,利用 SPCOMM控件则相对较简
单,并且该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操
作,而且还支持多线程。下面本文结合实例详细介绍 SPCOMM控件的使用。

SPCOMM的安装

1.选择下拉菜单 Component中的 Install Component选项,弹出如图 1所示的窗口。


图 1

在 Unit file name处填写 SPCOMM控件所在的路径,其他各项可用默认值,点击 OK按钮。

2.安装后,在 System控件面板中将出现一个红色控件 COM。现在就可以像 Delphi自带控
件一样使用 COM控件了。

SPCOMM的属性、方法和事件

1.属性

●CommName:表示 COM1、 COM2等串口的名字;

●BaudRate:根据实际需要设定的波特率,在串口打开后也可更改此值,实际波特率随之更
改;

●ParityCheck:表示是否需要奇偶校验;

●ByteSize:根据实际情况设定的字节长度;

●Parity:奇偶校验位;

●StopBits:停止位;

●SendDataEmpty:这是一个布尔型属性,为 true时表示发送缓存为空,或者发送队列里没
有信息;为 false时表示发送缓存不为空,或者发送队列里有信息。

2.方法

●Startcomm方法用于打开串口,当打开失败时通常会报错。错误主要有 7种:⑴串口已经
打开;⑵打开串口错误;⑶文件句柄不是通信句柄;⑷不能够安装通信缓存;⑸不能产生
事件;⑹不能产生读进程;⑺不能产生写进程;

●StopComm方法用于关闭串口,没有返回值;

●WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word )方法是个带有布尔型
返回值的函数,用于将一个字符串发送到写进程,发送成功返回 true,发送失败返回 false。
执行此函数将立即得到返回值,发送操作随后执行。该函数有两个参数,其中 pDataToWrite
是要发送的字符串, dwSizeofDataToWrite是发送字符串的长度。

3.事件

●OnReceiveData :procedure (Sender: TObject;Buffer: Pointer;BufferLength: Word)
of object

当有数据输入缓存时将触发该事件,在这里可以对从串口收到的数据进行处理。 Buffer中
是收到的数据, BufferLength是收到的数据长度。

●OnReceiveError : procedure(Sender: TObject;
EventMask : DWORD)

当接收数据出现错误时将触发该事件。

SPCOMM的使用

下面是一个利用 SPCOMM控件的串口通信的例子。

以实现 PC机与单片机 8051之间的通信为例,首先要调通它们之间的握手信号。假定它们
之间的通信协议是: PC到 8051一帧数据 6个字节, 8051到 PC一帧数据也为 6个字节。
当 PC发出( F0,01,FF,FF,01,F0)后 8051能收到一帧( F0,01,FF,FF,01,F0),表示数
据通信握手成功,两者之间就可以按照协议相互传输数据。

创建一个新的工程 COMM.DPR,把窗体的 NAME属性定为 FCOMM,把窗体的标题定义为测试
通信,按照图 2添加控件 (图 2中黑色矩形围住的控件即为 COMM1)。



图 2

1.设定 COMM1属性:

●波特率: 4800;

●奇偶校验位:无;

●字节长度: 8;

●停止位: 1;

●串口: COM1。

Memo1中将显示发送和接收的数据。将新的窗体存储为 Comm.pas。

2.编写源代码

//变量说明

var

fcomm: TFCOMM;


viewstring:string;


i:integer;


rbuf,sbuf:array[16] of byte;


//打开串口

procedure TFCOMM.FormShow(Sender: TObject);


begin


comm1.StartComm;


end;



//关闭串口

procedure TFCOMM.FormClose(Sender: TObject;
var Action: TCloseAction);


begin


comm1.StopComm;


end;



//自定义发送数据过程

procedure senddata;


var

i:integer;


commflg:boolean;


begin


viewstring:=‘’ ;


commflg:=true;


for i:=1 to 6do


begin


if not fcomm.comm1.writecommdata(@sbuf,1) then


begin


commflg:=false;


break;


end;



//发送时字节间的延时

sleep(2);


viewstring:=viewstring+ inttohex(sbuf,2)+‘’ ;
end;



viewstring:=‘发送’+ viewstring;


来自: PLWang, 时间: 2002-09-03 19:47:00, ID: 1304537
接受答案了.

得分大富翁: honestman
 
问题: 如何安裝使用MSCOMM控件 ( 积分: 100 )
分类: 控件 - 使用

来自: haozhip, 时间: 2002-08-19 14:56:00, ID: 1273560
在安裝時出現提示已經安裝,但是沒有發現圖表!

来自: Z_JJ, 时间: 2002-08-19 15:11:00, ID: 1273609
可能是你还没有在系统注册好ACTIVEX控件

来自: 太平洋, 时间: 2002-08-19 15:27:00, ID: 1273658
建议你把Delphi重装,然后装VB,再导入MScomm32.OCX(SYStem下)

来自: Feizi, 时间: 2002-08-20 10:59:00, ID: 1275402
到了客户那里的机器都一样要注册?

来自: chll, 时间: 2002-08-20 11:17:00, ID: 1275455
首先在VB安装目录下找到下列三个文件:
  Mscomm.reg, Mscomm32.ocx,Mscomm32.dep ,
  把这三个文件拷贝到Windows的system目录下(注意WinNT下是System32)。
然后用Windows下的注册工具regsvr32注册该OCX控件,例如:
  Regsvr32 … system目录/Mscomm32.ocx .
  注册成功后用记事本打开Mscomm.reg,可以看到类似下面的内容:
  [HKEY_CLASSES_ROOT/Licenses/4250E830-6AC2-11cf-8ADB-00AA00C00905]
@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun",为了能正确使用该控件,
需要修改注册表的信息,在注册表的在HKEY_CLASSES_ROOT/Licenses下建一主键:
4250E830-6AC2-11cf-8ADB-00AA00C00905,主键的内容为
kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun.
  至此已经完成了控件的系统注册工作,剩下的工作是在Delphi中导入这个ActiveX控件,
进入Delphi环境在Component菜单下选Import ActiveX Control,这时在列表中可以看到
Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。在ActiveX
控件页上可以看到一个电话为图标的控件,这就是MSComm控件。这样就可以象在VB中一样方
便得使用MSComm控件了。

如果,你机器上装了VB的话,在Delphi中直接安装即可
Component|Install ActiveX Control..

来自: zhangjingjun, 时间: 2002-08-20 12:01:00, ID: 1275564
启动DELPHI,选择Component下的Import ActiveX。单击ADD后,弹出一对话框,找到WINDOW/SYSTEM路径或(WIN2000/SYSTEM32)下的MSCOMM32.OCX之后安装,一个电话控件就出现在ActiveX面板上,使用方法同其它控件一样。[:)][:)]
代码:

来自: haozhip, 时间: 2002-08-22 10:58:00, ID: 1280056
謝謝各位!

得分大富翁: chll-60,Feizi-10,Z_JJ-10,zhangjingjun-10,太平洋-10,
 
不用安装VB不行吗?我一开始机器上也没有VB,可是也可以用.如何用Windows下的注册工具regsvr32
 
只要你机子上有MSCOMM.OCX和MSCOMM.REG就可以啦
在WINDOWS下在"开始"下找到"运行"直接在里面输入regsvr32 mscomm.ocx即可
或用快捷键"win"+"r"
 

Similar threads

后退
顶部