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是被拒絕訪問的。
上述方法的所有步驟並不是設置區域網都必須進行的,因為有些步驟在默認情況下已經設置。但是只要你的區域網出現了不能訪問的現象,通過上述設置肯定能保證區域網的暢通