程序是为了取得客户端MAC地址,源程序为:
unit Unit2;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, Project1_TLB,Windows, nb30,Variants, Classes, Graphics, Controls, Forms,
Dialogs, Messages, SysUtils, StdCtrls, StdVcl;
type
TMACaddress = class(TAutoObject, IMACaddress)
protected
function NBGetAdapterAddress:string;
{ Protected declarations }
end;implementationuses ComServ;function TMACaddress.NBGetAdapterAddress;
Var
NC:TNCB;
ADAPTE : TADAPTERSTATUS;
LANAENU : TLANAENUM;
intId : Integer;
cR : Char;
strTem : String;
Begin
Result := '';
Try
ZeroMemory(@NC, SizeOf(NC));
NC.ncb_command:=Chr(NCBENUM);
cR := NetBios(@NC);
// Reissue enum command
NC.ncb_buffer := @LANAENU;
NC.ncb_length := SizeOf(LANAENU);
cR := NetBios(@NC);
If Ord(cR)<>0 Then
exit;
ZeroMemory(@NC, SizeOf(NC));
NC.ncb_command := Chr(NCBRESET);
NC.ncb_lana_num := LANAENU.lana[10];
cR := NetBios(@NC);
If Ord(cR)<>0 Then
exit;
ZeroMemory(@NC, SizeOf(NC));
NC.ncb_command := Chr(NCBASTAT);
NC.ncb_lana_num := LANAENU.lana[10];
StrPCopy(NC.ncb_callname, '*');
NC.ncb_buffer := @ADAPTE;
NC.ncb_length := SizeOf(ADAPTE);
cR := NetBios(@NC);
strTem := '';
For intId := 0 To 5 Do
strTem := strTem+ InttoHex(Integer(ADAPTE.adapter_address[intId]),2);
Result := strTem;
Finally
End;
end;
initialization
TAutoObjectFactory.Create(ComServer, TMACaddress, Class_MACaddress,
ciMultiInstance, tmApartment);
end.
问题是:我新建一个new->activex->automationObject他必须在一个工程里面,我要编释完成发部成什么样的文件格式?我如果要把这个组件放到服务器上运行和ASP接口的话,要怎么注册这个组件,在ASP中怎么生成这个组件,谢谢!
急!!!100分相送!
unit Unit2;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, Project1_TLB,Windows, nb30,Variants, Classes, Graphics, Controls, Forms,
Dialogs, Messages, SysUtils, StdCtrls, StdVcl;
type
TMACaddress = class(TAutoObject, IMACaddress)
protected
function NBGetAdapterAddress:string;
{ Protected declarations }
end;implementationuses ComServ;function TMACaddress.NBGetAdapterAddress;
Var
NC:TNCB;
ADAPTE : TADAPTERSTATUS;
LANAENU : TLANAENUM;
intId : Integer;
cR : Char;
strTem : String;
Begin
Result := '';
Try
ZeroMemory(@NC, SizeOf(NC));
NC.ncb_command:=Chr(NCBENUM);
cR := NetBios(@NC);
// Reissue enum command
NC.ncb_buffer := @LANAENU;
NC.ncb_length := SizeOf(LANAENU);
cR := NetBios(@NC);
If Ord(cR)<>0 Then
exit;
ZeroMemory(@NC, SizeOf(NC));
NC.ncb_command := Chr(NCBRESET);
NC.ncb_lana_num := LANAENU.lana[10];
cR := NetBios(@NC);
If Ord(cR)<>0 Then
exit;
ZeroMemory(@NC, SizeOf(NC));
NC.ncb_command := Chr(NCBASTAT);
NC.ncb_lana_num := LANAENU.lana[10];
StrPCopy(NC.ncb_callname, '*');
NC.ncb_buffer := @ADAPTE;
NC.ncb_length := SizeOf(ADAPTE);
cR := NetBios(@NC);
strTem := '';
For intId := 0 To 5 Do
strTem := strTem+ InttoHex(Integer(ADAPTE.adapter_address[intId]),2);
Result := strTem;
Finally
End;
end;
initialization
TAutoObjectFactory.Create(ComServer, TMACaddress, Class_MACaddress,
ciMultiInstance, tmApartment);
end.
问题是:我新建一个new->activex->automationObject他必须在一个工程里面,我要编释完成发部成什么样的文件格式?我如果要把这个组件放到服务器上运行和ASP接口的话,要怎么注册这个组件,在ASP中怎么生成这个组件,谢谢!
急!!!100分相送!
regsvr32 *.dll即完成注册。在asp中
<%
Set XXX=Server.CreateObject("工程.coclassname")
XXX.方法
%>即可!
然后再在其中加组件吧