GetMem(Buf, BufSize); //申请内存,用于获取工作组信息
//获取一个网络类型的文件资源信息,
Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
if (Res = ERROR_NO_MORE_ITEMS) //资源列举完毕
or (Res <> NO_ERROR) //执行失败
then break;
P := TNetResourceArray(Buf);
for I := 0 to Count - 1 do //列举各个工作组的信息
begin
my_node_1 := treeview1.Items.addchild(node, StrPAS(P^.lpRemoteName)); //取得一个工作组的名称
my_node_1.imageindex := 1;
Inc(P);
end;
end;
Res := WNetCloseEnum(lphEnum); //关闭一次列举
if Res <> NO_ERROR then break; //执行失败
end;
FreeMem(Buf);
NetworkTypeList.Destroy;
screen.Cursor := crDefault;
statusbar.panels[0].text := '';
statusbar.refresh;
end;
procedure TFm_netlist.BitBtn1Click(Sender: TObject);
begin
aComputerName := treeview1.Selected.Text;
close;
end;
end.
在上面的程序清单中,首先定义了NetExecute方法,它根据传递进来的TFormClass参数值TformNet,打开“列举网络资源”窗口,用户可以在此窗口中选择想要连接的运行应用服务器程序的计算机。NetExecute方法将返回选中的计算机主机名。
在程序清单中,还自定义了GetGroupName和GetComputerName这两个非常重要的过程,其中GetGroupName方法用于获取网络中所有的工作组名称,并将工作组名添加到目录树的第二级目录中;GetComputerName方法则根据工作组的名称穷举工作组下的计算机,并将这些计算机添加到目录树的第三级目录中。
选择好计算机后,单击“确定”按钮,系统将把选定的计算机主机名赋给aComputerName全局变量,此时在NetExecute方法中,便返回此值。
(4) 在data单元(data.pas)中定义connect_app方法。connect_app方法用语读取注册表中配置应用服务器的信息并测试连接,如果没有连接上应用程序服务器将从新弹出配置窗口。这个接口方法在程序主窗体创建时被调用,用以尝试连接应用服务器。
ConnectAppServ方法在interface中的具体定义为:
function TFm_data.connect_app: boolean; //判断是否连接上了应用服务器
var
vs_Host, vs_Address, vs_Port: string;
reg: TRegistry;
begin
Result := True;
reg := Tregistry.create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
socket.Connected := false;
//读取注册表配置的应用服务器信息
if Reg.OpenKey('\Software\pz', False) then //如果注册表有信息
begin
vs_Host := reg.ReadString('Host');
vs_Address := reg.ReadString('ip');
vs_Port := reg.readstring('Port');
try
//测试连接
socket.Address := vs_Address;
socket.Host := vs_Host;
socket.Port := strtoint(vs_Port);
socket.Connected := true;
reg.closekey;
except //未连接上,弹出配置窗口
reg.closekey;
try
fm_Ser
首页 上一页 3 4 5 6 7 8 下一页 尾页 6/8/8
分布式多层数据库系统的应用(六)由毕业论文网(www.huoyuandh.com)会员上传。