1000分,决不食言。局域网内客户端打开服务器端文件功能(可修改),需要代码(100分)

  • 主题发起人 主题发起人 wanfangme
  • 开始时间 开始时间
W

wanfangme

Unregistered / Unconfirmed
GUEST, unregistred user!
请教一个问题:
我在一台服务器上一个文件夹里有很多文件作为部门公用的文件夹,
我写一个应用程序(客户端),使每个客户端都能通过这个应用程序打开服务器中某个特定文件观看。
这个我不知道怎么实现,需要代码。
 
你有没有服务器端的程序呢?
用:winexec
 
通过共享访问不就行了?
 
用操作系统的文件夹共享+权限设置……:)
 
通过权限设置控制
 
不能共享服务器上的文件夹,共享了就没什么意义了
 
那就用ftp
 
我写了一个简单的服务端和客户端发给你了。客户端思路很简单啊。
服务器端你只要装个iis。就行了。本例我是写了个简单的服务
就可以在客户端自己开发了。
 
登录服务器的代码:
function ConnectToHost(const user:string;const password:string;const Host:string):boolean;
var
netresource:Tnetresource;
re:dword;
begin
netresource.dwScope:=RESOURCE_GLOBALNET;
netresource.dwUsage:=RESOURCEUSAGE_CONNECTABLE;
netresource.dwType:=RESOURCETYPE_DISK;
netresource.dwDisplayType:=RESOURCEDISPLAYTYPE_SERVER;
netresource.lpLocalName:='';
netresource.lpRemoteName:=pchar('//'+Host); //远程主机名称。
netresource.lpProvider:='';
re:=WNetAddConnection3(
0,
netresource,
pchar(password),//密码
pchar(user), //用户名称
CONNECT_UPDATE_PROFILE
);
result:= re = NO_ERROR;
end;

//打开文件的代码
uses shellApi
//========
var
path :string;
begin
if not ConnectToHost('user','pass','Host') then exit;
path:='//host/共享文件夹/共享文件.TXT';
shellexecute(handle,'open',pchar(path),'','',sw_show);//打开文件
end;
其他要注意的:
1.共享的文件必须是可写的(如果要编辑);
2.必须先登录再打开。
 
有个简单的方案:
一.在客户端登录时,服务器端将这些文件名发到客户端:(可以通过定义特定的命令格式
如:FILENAME:ok.txt)以某些固定的命令头加内容的形式将文件名发过去.
二.客户端收到后,将想打开的文件名发过去(同理,FILEOPEN:ok.txt).
三.服务器端发到这个命令之后,就用局域内文件传送程序发过去(这种程序很易实现,我也做了一个).
四.客户端打开这个文件.如果要改的,就把这个文件当地改好,再传回去.
 
接受答案了.
 
后退
顶部