⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18641.html

📁 VB技巧问答10000例 VB技巧问答10000例
💻 HTML
字号:
<html>  <head>    <title>Re: 如何用VB得知区域网路所有线上电脑的IP和Name (改贴)</title>  </head>  <body bgcolor="#FFFFFF" vlink="#808080">    <center>      <h1>Re: 如何用VB得知区域网路所有线上电脑的IP和Name (改贴)</h1>    </center><hr size=7 width=75%><hr size=7 width=75%><p>Posted by 琏琏 on September 08, 1999 at 10:46:20:<p><center><img src="http://feitsui.hyd.ncku.edu.tw/TLCheng/Basic/logo.gif"></center><p><br>[略]<p>: nr1.lpRemoteName = nr.lpRemoteName //这个很奇怪在*.bas 宣告为String而在api 中却是pointer 传回<p>问题就在这!<br>lpRemoteName 若设成 String 则对于 WNetOpenEnum 所收到的引数值就不对了<br>我的做法是<br>(lpRemoteName as Long)<br>(BufferString=256)<p>lpBuff = GlobalAlloc(GPTR, BufferString) <br>nr.dwUsage = WNet_Usage_Container<br>nr.lpRemoteName = lpBuff<br>CopyMemory ByVal lpBuff, ResourceName, BufferString<p>[略]...<p>GlobalFree (lpBuff)<p>透过 lpBuff 所指定的记忆体空间位置来存字串, 在将 Pointer 存入 lpRemoteName<p>ps. 其实只要设定 nr.lpRemoteName 才是最主要的, nr.lpRemoteName 不指向为 null 时, 可以是 domain 或 Server 皆可! 比如说 ResourceName 可以是 domain ("水利海洋资料库") 或 Server (\\feitsui), <br>1.若是 null 则列举传回值为 domain, <br>2.若是 domain 则列举传回值为 Server, <br>3.若是 Server 则列举传回值为 Disk or Print. <p>[略]<p>: 而我的想法递回呼叫应是重新执行WNetOpenEnum,WNetEnumResource<br>: 这两个函数,所传的参数在递回呼叫应会重新refresh,不知这个想<br>: 法是那里有错,请您多多指教!!!谢谢!!!<p>有空我会整理我的 Code 放到我的网页上...<p>先送你错误讯息好了!!<br>比较特别的是 Error_Not_Authenticated , 查到 NT 通常会传回给你这个值, 不让你浏览...<br>若是有加上你在这几节的 MSDN 没看到的 Error Number, 别怀疑, 这都是我实际查网芳碰上的 Error Number<p>Declare Function WNetGetLastError Lib "mpr.dll" Alias "WNetGetLastErrorA" (lpError As Long, ByVal lpErrorBuf As String, ByVal nErrorBufSize As Long, ByVal lpNameBuf As String, ByVal nNameBufSize As Long) As Long<p>Private Enum enuWinNet_Error<br> Error_Invalid_Handle = 6<br> Error_Dev_Not_Exist = 55<br> Error_Bad_Dev_Type = 66<br> Error_Bad_Net_Name = 67<br> Error_More_Data = 234<br> Error_No_More_Items = 259<br> Error_Bad_Provider = 1204<br> ERROR_Not_Container = 1207<br> Error_Extended_Error = 1208<br> Error_No_Network = 1222<br> Error_Not_Authenticated = 1244<br>End Enum<p>Public Function myWNetErrorDescription(ByVal DLLErr)<p>Select Case DLLErr<br>Case Is = Error_Invalid_Handle<br> tDescription = "错误的代号,可能是资源列举代号错误!"<br>Case Is = Error_Dev_Not_Exist<br> tDescription = "指定的网路资源或装置不存在!"<br>Case Is = Error_Bad_Dev_Type<br> tDescription = "网路资源型态不正确!"<br>Case Is = Error_Bad_Net_Name<br> tDescription = "网路电脑名称不存在!"<br>Case Is = Error_More_Data<br> tDescription = "程式宣告空间不足,无法储存更多的资料,请洽原程式设计者!"<br>Case Is = Error_No_More_Items<br> tDescription = "没有其他资料项目了!"<br>Case Is = Error_Extended_Error<br> tErrDesc = myWNetGetLastError(DLLErr)<br> tDescription = "DLL 档延伸错误,请利用 WNetGetLastError 函数取的错误讯息!" + tErrDesc<br>Case Is = Error_Bad_Provider<br> tDescription = "网路提供者发生错误!"<br>Case Is = Error_No_Network<br> tDescription = "没有网路系统!"<br>Case Is = Error_Not_Authenticated<br> tDescription = "使用者未经认证,请求操作不被允许 [主机不允许未经密码确认的使用者浏览该主机提供资源]!"<br>Case Else<br> tDescription = "未定义此错误讯息 [Err=" + CStr(DLLErr) + "]!"<br>End Select<p>myWNetErrorDescription = tDescription<p>End Function<p>private Function myWNetGetLastError(ByVal lpError)<p>lpErrorBuf = String(BufferString, Chr$(0))<br>lpNameBuf = String(BufferString, Chr$(0))<p>summy = WNetGetLastError(lpError, lpErrorBuf, Len(lpErrorBuf), lpNameBuf, Len(lpNameBuf))<p>If summy = 0 Then<br> myWNetGetLastError = "myWNetGetLastError: " + myWNetErrorDescription(lpError)<br>Else<br> myWNetGetLastError = "myWNetGetLastError: " + CStr(lpError) + " " + Left(lpErrorBuf, InStr(lpErrorBuf, Chr$(0)) - 1)<br>End If<p>End Function<br><br><ul><li><a href="http://feitsui.hyd.ncku.edu.tw/TLCheng/Basic/index.htm">培基语言</a></ul><br><hr size=7 width=75%><p><a name="followups">Follow Ups:</a><br><ul><!--insert: 18641--><!--top: 18705--><li><a href="18705.html">Re: 如何用VB得知区域网路所有线上电脑的IP和Name (改贴)</a> <b>琏琏</b> <i>15:27:16 9/09/99</i>(<!--responses: 18705-->1)<ul><!--insert: 18705--><!--top: 18828--><li><a href="18828.html">Re: 如何用VB得知区域网路所有线上电脑的IP和Name (改贴)</a> <b>Smith</b> <i>08:04:43 9/12/99</i>(<!--responses: 18828-->0)<ul><!--insert: 18828--></ul><!--end: 18828--></ul><!--end: 18705--></ul><!--end: 18641--><br><hr size=7 width=75%><p></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -