在WIN2000与WIN98中创建共享文件夹的方法

在WIN2000与WIN98中创建共享文件夹的方法,第1张

在WIN2000与WIN98中创建共享文件夹的方法,第2张

大型计算机等级站的整理与收集:

在去年的《利用SQLSERVER的扩展存储过程实现远程备份和恢复》(http://www.csdn.net/Develop/read_article.ASP?ID = 21304)这篇文章中很多人提到了如何在程序中创建共享文件夹的问题。当时因为工作忙,只看到没有及时回复消息。给读者带来的不便,深感抱歉。在这篇文章中,我将逐一列出如何在WIN2000和WIN98中创建共享文件夹的代码(包括一系列相关的网络功能等。)来安慰大家。
unit PubLib;
interface
使用
窗口、消息、SysUtils、类、图形、控件、窗体、对话框、
菜单、ComCtrls、ToolWin、Db、ADODB、DBCtrls、StdCtrls、Math、dbgrids、
按钮、ExtCtrls、cliPBrd、注册表、变量;
const
NTlib = ' NETAPI32。DLL ';[br/]MElib = ' SV rapi。DLL ';
{ share type }
STYPE _ disk tree = 0;
STYPE _ PRINTQ = 1;
STYPE _ DEVICE = 2;
STYPE _ IPC = 3;
{访问权限}
Access _ READ = 0;
ACCESS _ WRITE = 1;
ACCESS _ CREATE = 2;
ACCESS _ EXEC = 3;
ACCESS _ DELETE = 4;
ACCESS _ ALL = 7;
type
NET _ API _ STATUS = DWORD;
//记录类型语句,注意参数类型的正确对应,不要看Delphi的帮助,导致误导
t share _ info _ 502 = Record
Shi 502 _ netname:pwidechar;
Shi 502 _ type:DWORD;
Shi 502 _ remark:PWideChar;
Shi 502 _ permissions:DWORD;
Shi 502 _ max _ uses:DWORD;
Shi 502 _ current _ uses:DWORD;
Shi 502 _ path:PWideChar;
Shi 502 _ passwd:PWideChar;
Shi 502 _ reserved:DWORD;
Shi 502 _ security _ DESCRIPTOR:PSECURITY _ DESCRIPTOR;
end;
Share _ info 50 = packed record
Shi 50 _ netname:array[0..12]的Char{ 13 }
Shi 50 _ type:Byte;
Shi 50 _ flags:Word;
Shi 50 _备注:PChar
Shi 50 _ path:PChar;
shi50 _ rw _ password:array[0..8]的Char{ 9 }
Shi 50 _ ro _ password:array[0..8]的Char
end;

//* * * * * * * * * * * * * *网络函数* * * * * * * * * * * * * * * * * * * * * * * *
Function is winnt:boolean;//判断NT系统
函数是否getpdcname:string;//获取主域控制器的名称
函数获取域名:Anstring//获取域名
//创建和删除共享文件夹
/对于Win2000,winnt
函数appendsharesource(servername,filepath,netname,备注:string):integer;
函数deletesharesource(ServerName:string;NetName: string):整数;
//for win98
函数addsharesource(ServerName:PChar;file path:PChar;
NetName:PChar;备注:PChar):整数;
函数delsharesource(ServerName:string;NetName: string):整数;

var NTNetGetDCName : function(服务器,域:pWideCharvar DC:pWideChar):NET _ API _ STATUS;StdCallNTNetApiBufferFree:function(LP buffer:Pointer):NET _ API _ STATUS;StdCallNTNetShareAdd:function(servername:Widestring;级别:DWORDbuf:PBYTE;var parm _ err:PD word):DWORD;stdcall//建立共享目录函数ntnetsharedel:function(servername:widestring;NetName:Widestring;保留:DWord):整数;stdcall//撤销共享目录函数menetshareadd:function(servername:pchar;share level:SmallInt;缓冲区:指针;大小:Word):整数;StdCallMENetShareDel:function(ServerName:PChar;网名:PChar保留:Word):整数;StdCall

履行

函数is winnt:Boolean;
var
version info:tosversion info;
begin
version info . dwosversioninfosize:= SizeOf(TOSVersionInfo);
Result:= GetVersionEx(version info);
if Result then
Result:= version info . dwplatformid = VER _平台_ WIN32 _ NT
end;

函数GetPDCName:string;
var
p domain:PWideChar;
lib handle:thand le;
begin
Result:= ' ';
lib handle:= LoadLibrary(NTlib);
如果LibHandle = 0,则
引发异常。Create('无法映射库:'+NTlib);
try
@ NTNetGetDCName:= GetProcAddress(lib handle,' NetGetDCName ');
@ NTNetApiBufferFree:= GetProcAddress(lib handle,' NetApiBufferFree ');
try
if NTNetGetDCName(nil,nil,p domain)= 0 then
Result:= WideCharToString(p domain);
finally
NTNetApiBufferFree(p domain);
end;
finally
free library(lib handle);
end;
end;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 在WIN2000与WIN98中创建共享文件夹的方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情