📄 subject_58257.htm
字号:
<p>
序号:58257 发表者:猪啊 发表日期:2003-10-31 08:35:21
<br>主题:寻NetShareEnum例子
<br>内容:使用它搜索共享的例子,谢谢
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:wjb 回复日期:2003-10-31 09:34:24
<br>内容:MSDN中的例子:<BR><BR>#define UNICODE<BR>#include <windows.h><BR>#include <stdio.h><BR>#include <lm.h><BR><BR>void wmain( int argc, TCHAR *lpszArgv[ ])<BR>{<BR> PSHARE_INFO_502 BufPtr,p;<BR> NET_API_STATUS res;<BR> LPTSTR lpszServer = NULL;<BR> DWORD er=0,tr=0,resume=0, i;<BR><BR> switch(argc)<BR> {<BR> case 2:<BR> lpszServer = lpszArgv[1];<BR> break;<BR> default:<BR> printf("Usage: NetShareEnum <servername>\n");<BR> return;<BR> }<BR> //<BR> // Print a report header.<BR> //<BR> printf("Share: Local Path: Uses: Descriptor:\n");<BR> printf("---------------------------------------------------------------------\n");<BR> //<BR> // Call the NetShareEnum function; specify level 502.<BR> //<BR> do // begin do<BR> {<BR> res = NetShareEnum (lpszServer, 502, (LPBYTE *) &BufPtr, -1, &er, &tr, &resume);<BR> //<BR> // If the call succeeds,<BR> //<BR> if(res == ERROR_SUCCESS || res == ERROR_MORE_DATA)<BR> {<BR> p=BufPtr;<BR> //<BR> // Loop through the entries;<BR> // print retrieved data.<BR> //<BR> for(i=1;i<=er;i++)<BR> {<BR> printf("%-20S%-30S%-8u",p->shi502_netname, p->shi502_path, p->shi502_current_uses);<BR> //<BR> // Validate the value of the <BR> // shi502_security_descriptor member.<BR> //<BR> if (IsValidSecurityDescriptor(p->shi502_security_descriptor))<BR> printf("Yes\n");<BR> else<BR> printf("No\n");<BR> p++;<BR> }<BR> //<BR> // Free the allocated buffer.<BR> //<BR> NetApiBufferFree(BufPtr);<BR> }<BR> else <BR> printf("Error: %ld\n",res);<BR> }<BR> // Continue to call NetShareEnum while <BR> // there are more entries. <BR> // <BR> while (res==ERROR_MORE_DATA); // end do<BR> return;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:猪啊 回复日期:2003-10-31 09:36:53
<br>内容:谢谢!这个例子我已经看过了<BR>我想看实际应用中比较具体的例子
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wjb 回复日期:2003-10-31 09:40:28
<br>内容:下面的例子是否有包含NetShareEnum不是很清楚,但是可以列举共享。看是否有用。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:猪啊 回复日期:2003-10-31 09:50:58
<br>内容:看了,那一步偶已经作好了,枚举局域网中的资源,我不会下一步,就是枚举出所有的共享文件(文件夹)<BR>上一步用的是WNetEnumResource,下一步我开始用WNetAddConnection2,但是似乎不行,也许要用NetShareEnum,不会用,只找到下面:<BR><BR><BR>扫描隐藏共享可以使用NetShareEnum 函数,这个函数在win2000中和win98中用法不一样。win2000中从netapi32.dll中的调用,详情请查看微软的帮助-MSDN。定义如下 <BR>TNetShareEnumNT=function (<BR> // win2000的netapi32.dll中的NetShareEnum 函数<BR> servername:PWideChar;<BR> level:DWORD;<BR> var Buf:PSHARE_INFO_1;<BR> prefmaxlen:longint;<BR> var entriesread:DWORD;<BR> var totalentries:DWORD;<BR> var resume_handle:DWORD<BR> ):NET_API_STATUS;stdcall;<BR>使用方法:<BR>var<BR> hNetApiDll: HMODULE;<BR> //下列为动态定义<BR> NetShareEnumNT :TNetShareEnumNT;<BR> //win2000操作系统下可以静态定义为external 'netapi32.dll' name 'NetShareEnum';<BR>begin<BR> hNetApiDll:=LoadLibrary('netapi32.dll');<BR> @NetShareEnumNT:=GetProcAddress(hNetApiDll, 'NetShareEnum');<BR><BR>end;<BR><BR><BR>////////////////////<BR>但是我看得不大明白,想再找一个<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wjb 回复日期:2003-10-31 12:07:46
<br>内容:1. NetShareEnum和WNetShareEnum作用是一样的,区别就是前者可以获得隐藏的共享连接。<BR>2. WNetAddConnection2是把共享连接映射为本地的一个资源,需要填写一些参数。至少是lpLocalName。比如lpLocalName="g:"是指定为G盘。还有用户和口令。<BR>3.枚举出所有的共享文件根本不再需要NET函数了。直接当做一个网络路径进行操作就可以了。比如使用CFileFind进行查找,路径使用lpRemoteName内容。<BR><BR>希望俺没有理解错误。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:猪啊 回复日期:2003-10-31 15:39:57
<br>内容:偶试了一下,CFileFind 只能搜索本地计算机的文件,没办法用来查找网络路径的吧?<BR>还有,msdn里查不到WNetShareEnum阿
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wjb 回复日期:2003-10-31 15:49:13
<br>内容:1.比如网络路径:\\share1\pub<BR>CFileFind ff;<BR>ff.FindFile("\\\\share1\\pub\\*.*")<BR>2.抱歉,写错了。NetShareEnum对应的是WNetEnumResource。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:猪啊 回复日期:2003-10-31 15:56:50
<br>内容:又试了一下,FindFile("\\\\share1\\pub\*.*")可以<BR>但是如果只给出网络路径,没有文件夹FindFile("\\\\share1\\*.*")就不行了<BR>WNetEnumResource只能枚举网络中的所有计算机,但是没办法把所有共享资源都枚举出来吧??
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:猪啊 回复日期:2003-10-31 16:02:14
<br>内容:不介意的话,把msn或者QQ告诉我好不好?这个速度我等到明天也要不到我想要的东西拉~<BR>谢谢,当然,如果介意的话就continue~:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:wjb 回复日期:2003-10-31 16:04:24
<br>内容:msn: xuexier@hotmail.com
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:猪啊 回复日期:2003-11-03 08:39:26
<br>内容:thanks a lot
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -