A. 如何通过API枚举本机的共享文件夹
看看研究这个例子
PrivateConstRESOURCE_CONNECTEDAsLong=&H1&
PrivateConstRESOURCE_GLOBALNETAsLong=&H2&
PrivateConstRESOURCE_REMEMBEREDAsLong=&H3&
_DIRECTORY&=&H9
_DOMAIN&=&H1
_FILE&=&H4
_GENERIC&=&H0
_GROUP&=&H5
_NETWORK&=&H6
_ROOT&=&H7
_SERVER&=&H2
_SHARE&=&H3
_SHAREADMIN&=&H8
PrivateConstRESOURCETYPE_ANYAsLong=&H0&
PrivateConstRESOURCETYPE_DISKAsLong=&H1&
PrivateConstRESOURCETYPE_PRINTAsLong=&H2&
PrivateConstRESOURCETYPE_UNKNOWNAsLong=&HFFFF&
PrivateConstRESOURCEUSAGE_ALLAsLong=&H0&
PrivateConstRESOURCEUSAGE_CONNECTABLEAsLong=&H1&
PrivateConstRESOURCEUSAGE_CONTAINERAsLong=&H2&
PrivateConstRESOURCEUSAGE_RESERVEDAsLong=&H80000000
PrivateConstNO_ERROR=0
PrivateConstERROR_MORE_DATA=234
PrivateConstRESOURCE_ENUM_ALLAsLong=&HFFFF
PrivateTypeNETRESOURCE
dwScopeAsLong
dwTypeAsLong
dwDisplayTypeAsLong
dwUsageAsLong
pLocalNameAsLong
pRemoteNameAsLong
pCommentAsLong
pProviderAsLong
EndType
PrivateTypeNETRESOURCE_REAL
dwScopeAsLong
dwTypeAsLong
dwDisplayTypeAsLong
dwUsageAsLong
sLocalNameAsString
sRemoteNameAsString
sCommentAsString
sProviderAsString
EndType
"mpr.dll"Alias"WNetAddConnection2A"(lpNetResourceAsNETRESOURCE,ByVallpPasswordAsString,ByVallpUserNameAsString,ByValdwFlagsAsLong)AsLong
"mpr.dll"Alias"WNetOpenEnumA"(ByValdwScopeAsLong,ByValdwTypeAsLong,ByValdwUsageAsLong,lpNetResourceAsAny,lphEnumAsLong)AsLong
"mpr.dll"Alias"WNetEnumResourceA"(ByValhEnumAsLong,lpcCountAsLong,lpBufferAsNETRESOURCE,lpBufferSizeAsLong)AsLong
"mpr.dll"(ByValhEnumAsLong)AsLong
PrivateDeclareSubCopyMemLib"kernel32"Alias"RtlMoveMemory"(lpToAsAny,lpFromAsAny,ByVallLenAsLong)
"kernel32"Alias"lstrlenA"(ByVallpStringAsAny)AsLong
Subgetinfor()
ConstMAX_RESOURCES=256
ConstNOT_A_CONTAINER=-1
DimbFirstTimeAsBoolean
DimlReturnAsLong
DimhEnumAsLong
DimlCountAsLong
DimlMinAsLong
DimlLengthAsLong
DimlAsLong
DimlBufferSizeAsLong
DimlLastIndexAsLong
DimuNetApi(0ToMAX_RESOURCES)AsNETRESOURCE
DimuNet()AsNETRESOURCE_REAL
bFirstTime=True
Do
IfbFirstTimeThen
lReturn=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_ALL,ByVal0&,hEnum)
bFirstTime=False
Else
IfuNet(lLastIndex).dwUsageAndRESOURCEUSAGE_CONTAINERThen
lReturn=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_ALL,uNet(lLastIndex),hEnum)
Else
lReturn=NOT_A_CONTAINER
hEnum=0
EndIf
lLastIndex=lLastIndex+1
EndIf
IflReturn=NO_ERRORThen
lCount=RESOURCE_ENUM_ALL
Do
lBufferSize=UBound(uNetApi)*Len(uNetApi(0))/2
lReturn=WNetEnumResource(hEnum,lCount,uNetApi(0),lBufferSize)
IflCount>0Then
ReDimPreserveuNet(0TolMin+lCount-1)AsNETRESOURCE_REAL
Forl=0TolCount-1
uNet(lMin+l).dwScope=uNetApi(l).dwScope
uNet(lMin+l).dwType=uNetApi(l).dwType
uNet(lMin+l).dwDisplayType=uNetApi(l).dwDisplayType
uNet(lMin+l).dwUsage=uNetApi(l).dwUsage
IfuNetApi(l).pLocalNameThen
lLength=lstrlen(uNetApi(l).pLocalName)
uNet(lMin+l).sLocalName=Space$(lLength)
CopyMemByValuNet(lMin+l).sLocalName,ByValuNetApi(l).pLocalName,lLength
EndIf
IfuNetApi(l).pRemoteNameThen
lLength=lstrlen(uNetApi(l).pRemoteName)
uNet(lMin+l).sRemoteName=Space$(lLength)
CopyMemByValuNet(lMin+l).sRemoteName,ByValuNetApi(l).pRemoteName,lLength
EndIf
IfuNetApi(l).pCommentThen
lLength=lstrlen(uNetApi(l).pComment)
uNet(lMin+l).sComment=Space$(lLength)
CopyMemByValuNet(lMin+l).sComment,ByValuNetApi(l).pComment,lLength
EndIf
IfuNetApi(l).pProviderThen
lLength=lstrlen(uNetApi(l).pProvider)
uNet(lMin+l).sProvider=Space$(lLength)
CopyMemByValuNet(lMin+l).sProvider,ByValuNetApi(l).pProvider,lLength
EndIf
DoEvents
Nextl
EndIf
lMin=lMin+lCount
DoEvents
LoopWhilelReturn=ERROR_MORE_DATA
EndIf
IfhEnumThen
l=WNetCloseEnum(hEnum)
EndIf
DoEvents
LoopWhilelLastIndex<lMin
cmd2.Visible=False
IfUBound(uNet)>0Then
Forl=0ToUBound(uNet)
SelectCaseuNet(l).dwDisplayType
CaseRESOURCEDISPLAYTYPE_DIRECTORY&
List1.AddItem"Directory..."
CaseRESOURCEDISPLAYTYPE_DOMAIN
List1.AddItem"Domain..."
CaseRESOURCEDISPLAYTYPE_FILE
List1.AddItem"File..."
CaseRESOURCEDISPLAYTYPE_GENERIC
List1.AddItem"Generic..."
CaseRESOURCEDISPLAYTYPE_GROUP
List1.AddItem"Group..."
CaseRESOURCEDISPLAYTYPE_NETWORK&
List1.AddItem"Network..."
CaseRESOURCEDISPLAYTYPE_ROOT&
List1.AddItem"Root..."
CaseRESOURCEDISPLAYTYPE_SERVER
List1.AddItem"Server..."
CaseRESOURCEDISPLAYTYPE_SHARE
List1.AddItem"Share..."
CaseRESOURCEDISPLAYTYPE_SHAREADMIN&
List1.AddItem"ShareAdmin..."
EndSelect
List1.AddItemuNet(l).sRemoteName&uNet(l).sComment
List1.Refresh
DoEvents
Nextl
EndIf
EndSub
PrivateSubCommand1_Click()
getinfor
EndSub
PrivateSubForm_Unload(CancelAsInteger)
UnloadMe
EndSub
B. 局域网要怎么设置共享
很多时候我们为了方便需要在局域网中共享文件,那在局域网中要怎样设置共享呢?下面给大家介绍局域网要怎么设置共享,欢迎阅读!
1、更改不同的计算机名,设置相同的工作组!
2、我的电脑右键-管理-计算机管理-本地用户和组-用户:更改管理员用户名。
3、手动设置IP,将ip设置在同一个网段,子网掩码和DNS解析相同。
4、如何设置DNS解析:首先你可以使用自动获取,然后在开始-运行里面输入cmd后回车,在命令里面输入ipconfig/all后回车。
5、运行里输入services.msc回车打开服务。
6、开始-设置-控制面板-防火墙-例外-勾选“文件和打印机共享”!当然你也可以关闭防火墙。
7、运行里面输入secpol.msc回车进入本地安全设置-本地策略-安全选项。
8、将“网络访问:不允许SAM账户的匿名枚举”停用 注意此点只对来宾起效,将在第六章说到。
9、将“账户:使用空白密码的本地账户只允许进行控制台登录”停用。
10、双击我的电脑打开资源管理器-工具-文件夹选项-查看-将“使用简单的文件夹共享”前面的勾去除!
11、设置共享文件夹或共享盘符(我这里设置D盘为共享盘符,当然你可以自己设置磁盘里面的任意文件夹为共享文件)。
12、打开资源管理器-右键D盘-共享和安全-左键点选打开。
13、经过上面两章的设置,我们已经可以访问计算机today了。
在主机中双击网上邻居-点击查看工作组计算机。
双击today或是右键打开。
14、还有一个更快捷的'访问方法就是在主机的地址栏里面直接输入 oday后回车,出现的界面和上面相同。
在登录框输入用户名play和密码(这里密码为空,所以不用输入),确定后就进入today的共享盘符了。
“我的电脑”右键-管理-本地用户和组-用户-启用来宾(注意:在这里启用来宾的效果和在控制面板-用户账户里面启用来宾是一样的。区别就是在此启用后面板里面的来宾还是显示没有启用的,而在面板里面启用来宾的话这里也就启用了。)
运行里输入secpol.msc启动“本地安全设置”-“用户权利指派”-将“拒绝从网络访问这台计算机”里面的guest用户删除。
运行里输入secpol.msc启动“本地安全设置”-“安全选项”-“网络访问:本地账户的共享和安全模式”-将“经典”改为“仅来宾”。
运行里输入secpol.msc启动“本地安全设置”-“用户权利指派”-将“拒绝作为服务器和批作业”里面的用户删除。
注意:以上设置需重启后生效。
15、在主机中右键“网上邻居”-点选“映射网络驱动器”。
浏览today的共享盘符。
完成后在主机里面出现了today的共享盘符。
以上设置,便大功告成。
C. 局域网共享设置
局域网内的几台电脑如果实现文件夹的共享就可以很方便的互相利用资源,那么我们要如何实现这一功能呢?下面是简单的操作步骤,分享与大家:希望对大家有所帮助!
工具:优盘一个。
1、打开"网上邻居",在右边网络任务里面点击“创建家庭和小型办公网络”,然后出现“欢迎使用网络安装向导”,点击下一步,出现“网络安装向导”,点击下一步,“选择连接方法”,选择第二个(此计算机通过居民区的网关或网络上的其他计算机连接到Internet(M)。),给这台计算提供描述和名称。这个自己添(可任意添),
2、单击下一步命名您的网络,在工作组名里:添上一个容易记住的名字,然后单击下一步,“文件和打印机共享”,选择“启用文件和打印机共享”(T),单击下一步,“准备应用网络设置”,单击下一步,“选择创建网络安装磁盘(c)”,点击下一步,“插入要使用的磁盘”,点击下一步,“要用网络安装磁盘来运行向导”,点击完成即可。
这样就在一台计算机上创建了网络安装向导。下面就将优盘里的netsetup.exe拷贝到其他的计算机双击运行就可以了。
注意工作组名一定要相同,最后到快完成了,也就是出现--【创建网络安装磁盘】时,选择最后一项,【完成该向导。我不需要在其他计算机上运行该向导(J)】。
这样重启计算机之后,局域网内的每台计算机就可以共享自己的文件了,具体设置如下:
右击你要共享的文件夹,然后点击上面的共享,把网络共享和安全里的,在网络上共享这个文件夹前的勾打上,点击应用就可以了。然后其他计算机上就可以看到你共享的文件夹了(打开网上邻居,点击查看工作组计算机--共享的文件夹就在这里)。这样大家就可以共享了。
D. 局域网共享文件夹设置
局域网共享文件夹设置方法如下:
1.首先在主机上打开来宾帐户,右键单击我的计算机,选择管理,在本地用户和组中,删除来宾属性下“已禁用帐户”前面的复选标记,然后应用。
什么是局域网
局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。局域网的类型很多,若按网络使用的传输介质分类,可分为有线网和无线网,若按网络拓扑结构分类,可分为总线型、星型、环型、树型、混合型等。
E. 怎么设置局域网共享文件夹
这个情况说明你的当前访问模式为经典访问模式,有几个解决方案:
(1)输入共享机子上的用户名和密码即可访问。
(2)如果你不想用输入密码来访问,那请你把客户机当前用户的密码设和共享机子上相同用户名的密码一致。就可以直接访问了。
(3)如果你不想用输入密码来访问,那请你把客户机换一个用户名登录系统。再访问。那也不需要密码就可以访问了。
(4)更改访问模式。把“经典”改为“仅来宾”。到开始—运行—输入gpedit.msc回车—计算机配置—windows设置—安全设置—本地策略—安全设置—“网络访问:本地用户的共享和安全模式”改为“经典”如图16
F. win7共享文件夹权限设置问题
1、确保工作组--就是同一个工作组,IP地址
2、更改用户管理员名字,否则同一个名字可以自由登录
3、启动 server
4、防火墙,例外--文件和打印机共享,选上
5、网络访问:不允许SAM账户的匿名枚举:已经停用,此点只对来宾起效
网络访问:不允许SAM账户和共享的匿名枚举:已经停用
6、账户:使用空白密码的本地账户只允许进行控制台登录:启用即可需要密码,停用就不用密码
7、来宾帐号已停用--即可登录---首先有受限账户才可以,用那个受限账户作为临时用户
局域网不同用户不同的权限设置环境配置
1、首先简单共享可以实现
2、创建新帐号--输入账号类型--受限,并输入密码
3、在gpedit.msc-windows设置-安全设置-本地策略-用户权利指派-从网络上访问此计算机-添加用户或组-添加(想设置不同的工作用户有不同的帐号和密码,需要在主机上建立与工作用户的个数等同的用户个数)
4、确保共享文件在NTFS的磁盘里,
5、运行secpol.msc-安全策略-使用空白的密码的本地帐号只允许进行控制台登录-禁止
6、本地用户的共享和安全模式-经典-本地用户
7、设置文件夹共享权限--共享与安全--安全卡--删除everyone--并添加,访问用户,一个或者多个(a(LILY\a),guest(LILY\guest))
并给予权限--读取和运行、列出文件夹目录、读取--
G. 同一网络共享怎么设置
Win7局域网共享。
1.点开始—控制面板—系统和安全—管理工具—服务,开启以下服务:
HomeGroup Listener
HomeGroup Provider
Server
Function Discovery Resource Publication
SSDP Discovery
UPnP Device Host
2.点桌面右键—个性化,点更改桌面图标,勾选网络,点确定。
3.点桌面网络—右键属性,点更改高级共享设置,进行以下设置(最后点保存更改):
启用网络发现
启用文件和打印机共享
关闭密码保护共享
(Win7家庭版可忽略4、5项)
4.点计算机右键管理—本地用户和组—用户—Guest右键属性,把“帐户已禁用”左边的勾去掉。
5.点控制面板—系统和安全—管理工具—本地安全策略,
点本地策略—用户权限分配,双击“拒绝从网络访问这台计算机”,如果出现Guest一栏就点删除确定;
点本地策略—安全选项,双击下面一点的“网络访问:本地帐户的共享和安全模型”,选择“仅来宾”确定。
6.选择要共享的文件夹,点右键—共享—特定用户,点下拉菜单,选择Guest点添加,设置权限级别,点共享。
WinXP局域网共享。
1.点控制面板—管理工具—服务,开启以下3个服务:
Computer Browser
Server
Workstation
2.点控制面板—管理工具—本地安全策略—本地策略。
点用户权利指派,
“从网络访问此计算机”添加“Guest”用户;
“拒绝从网络访问这台计算机”删除“Guest”。
点安全选项,
“网络访问:本地帐户的共享和安全模式”设为“仅来宾”;
“网络访问:不允许SAM帐户和共享的匿名枚举”设为“已禁用”;
“帐户:来宾帐户状态”设为“已启用”;
“帐户:使用空白密码的本地帐户只允许进行控制台登录”设为“已禁用”。
3.点控制面板—管理工具—计算机管理—本地用户和组—用户,双击Guest,不勾选“帐户已停用”。
4.选择要共享的文件夹,右键点“共享和安全”,勾选“在网络上共享这个文件夹”。
H. 有线网电脑和无线网电脑如何共享文件夹
有线网电脑和无线网电脑共享文件夹的具体操作步骤如下:
1、首先,在电脑上选择想要共享出来的文件夹,然后右键选择属性:
I. 如何设置共享文件夹
1.启用来宾帐户。
“控制面板-用户帐户-启用来宾帐户”
2.安装NetBEUI协议。
查看“网上邻居”属性——查看“本地连接”属性——点击“安装”——查看 “协议”——看其中NetBEUI协议是否存在,如果存在则安装这个协议,如果不存在则表明已经安装了该 协议,在Winxp系统默认的情况下该协议是已经安装好了的。
3.查看本地安全策略设置是否禁用了GUEST账号。
控制面板——管理工具——本地安全策略——用户权利指派——查看“拒绝从网络访问这台计算机”项的属性——看里面是否有GUEST帐户,如果有就把它删除掉。
4.设置共享文件夹。
你如果不设置共享文件夹的话,网内的其它机器无法访问到你的机器。设置文件夹共享的方法有三种,第一种是:“工具--文件夹选项--查看--使用简单文件夹共享”。这样设置后,其他用户只能以Guest用户的身份访问你共享的文件或者是文件夹。第二种方法是:“控制面板--管理工具--计算机管理”,在“计算机管理”这个对话框中,依次点击“文件夹共享--共享”,然后在右键中选择“新建共享”即可。第三种方法最简单,直接在你想要共享的文件夹上点击右键,通过“共享和安全”选项即可设置共享。
5.建立工作组。
在Windows桌面上用右键点击“我的电脑”,选择“属性”,然后单击“计算机名”选项卡,看看该选项卡中有没有出现你的局域网工作组名称,如“workgroup”等。然后单击“网络 ID”按钮,开始“网络标识向导”:单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”;单击“下一步”,选择“公司使用没有域的网络”;单击“下一步”按钮,然后输入你的局域网的工作组名,这里我建议大家用“BROADVIEW”,再次单击“下一步”按钮,最后单击“完成”按钮完成设置。
重新启动计算机后,局域网内的计算机就可以互访了。
6.查看“计算机管理”是否启用来宾帐户。
控制面版——计算机管理——本地用户和组——用户——启用来宾帐户。机器重新启动后就可以了。
如果大家想提高访问别人机器的速度的话,还可以做一些相关操作:控制面版——管理工具——服务——Task Scheler——属性——启动方式改为手动,这样就可以了。
7.用户权利指派。
“控制面板--管理工具--本地安全策略”,在“本地安全策略”对话框中,依次选择“本地策略--用户权利指派”,在右边的选项中依次对“从网络上访问这台计算机”和“拒绝从网络上访问这台计算机”这两个选项进行设置。
“从网络上访问这台计算机”选项需要将guest用户和everyone添加进去;“拒绝从网络上访问这台计算机”需要将被拒绝的所有用户删除掉,默认情况下guest是被拒绝访问的。
上述方法的所有步骤并不是设置局域网都必须进行的,因为有些步骤在默认情况下已经设置。但是只要你的局域网出现了不能访问的现象,通过上述设置肯定能保证局域网的畅通