reg.WriteString('ip',bappip);
reg.WriteString('port',aport);
reg.Free;
end;
end.
打开“连接设置”配置窗口,在打开窗体之前,函数已经将布尔变量Connected设为False,而在窗体被关闭之后,将返回Connected变量的值,根据布尔变量Connected的值可以判断是否已经连接上应用服务器。
(3) 在连接设置主窗口中,我们为应用服务器名提供了辅助录入的方法,点击应用服务器名编辑框右边的省略号按钮(Button1),将弹出一个浏览局域网计算机的对话框,以方便用户选择应用服务器所在的计算机。在此我们调用了一个NetExecute方法,它将返回用户选中的计算机的主机名。这个方法是如何实现的呢?下面将介绍NetExecute方法的实现过程。
在Delphi中新建一个窗体,将窗体单元文件保存为netlist .pas,窗体的Name属性设为Fm_netlist。运行后窗体如下图所示。
在列举网络资源窗体中,将按照工作组以树型目录的形式显示局域网中的计算机。程序的具体实现部分如下所示。
procedure FormActivate(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
procedure getcomputername;
procedure getgroupname;
{ Private declarations }
public
{ Public declarations }
end;
function NetExecute(aFormClass: TFormClass): string;
var
fm_NetList: Tfm_NetList;
node: Ttreenode;
aComputerName : string;//全局变量,存储选中的主机名
implementation
{$R *.dfm}
//打开窗体,并返回选定的计算机
function NetExecute(aFormClass: TFormClass): string;
begin
aComputerName := '';
with aFormClass.Create(Application) do
begin
try
showModal;
finally
free;
end;
result := aComputerName;
end;
end;
procedure TFm_netlist.FormActivate(Sender: TObject);
begin
node:=treeview1.items.add(Treeview1.topitem, '整个网络');
node.imageindex:=0;
treeview1.setfocus;
end;
procedure TFm_netlist.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected.Level=0 then
begin
if treeview1.Selected.Count=0 then
//添加工作组名
getgroupname();
end;
if treeview1.Selected.Level=1 then
begin
if treeview1.Selected.Count=0 then
//添加计算机名
getcomputername;
end;
if treeview1.Selected.Level=2 then
bitbtn1.Enabled:=true
else
bitbtn1.Enabled:=false;
end;
//取得计算机名
procedure Tfm_netlist.getcomputername;
var
NetResource: TNetResource;
Buf: Pointer;
Count, BufSize, Res: DWord;
Ind: Integer;
lphEnum: THandle;
Temp: TNetResourceArray;
groupname: string;
my_node: Ttreenode;
my_node_2: Ttreenode;
begin
screen.Cursor := crHourGlass;
statusbar.panels[0].text := '正在列举组名...,请稍侯';
statusbar.refresh;
my_node := treeview1.Selected;
groupname := treeview1.Selected.Text;
FillChar(NetResource, SizeOf(NetResource), 0); //初始化网络层次信息
NetResource.lpRemoteName := @GroupName[1]; //指定工作组名称
NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER; //类型为服务器(工作组)
NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
NetResource.dwScope := RESOURCETYPE_DISK; //列举文件资源信息
//获取指定工作组的网络资源句柄
Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
 
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/8/8
分布式多层数据库系统的应用(四)由免费论文网(www.jaoyuw.com)会员上传。