当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: pine金网霸ess2819for2000的驱动在什么地方? 在驱动之家找了,可是下载了不能用。 有专门的驱动光盘(买modem时送的),里面有for2000的,可是也不行,我已经忍了一年了,现在忍不了了,请哪位帮帮忙,你们的ess是怎么驱动的? 另外我在pine的网站也找了,下了之后在装得时候提示要个什么56vpi。dll的文件,不懂,而且在下载的文件里也没有,怎么办? ......
    摘要: int[] a = {4, 4}; int b = 1; a[b] = b = 0; system.out.println(a[0]); system.out.println(a[1]); system.out.println(b); 为什么会是这样呢? ......


如何取得局域网中的所有计算机名,局域网为对等网。

如何取得局域网中的所有计算机名,局域网为对等网。  
  如何取得一边接在INTERNET上的本地计算机的IP地址

NO.1   作者: KAIBate

UPUP:)  
 

NO.2   作者: QQRN

有分相送如何用VB动态获取网络邻居的名称及其IP地址要所有邻居   http://www.csdn.net/Expert/icView1.asp?id=286028  
  参考一下这个

NO.3   作者: junwhj

添加一个模块并设置工程的启动对象为Sub   Main()  
   
  Option   Explicit  
  Private   Const   RESOURCE_CONNECTED   As   Long   =   &H1&  
  Private   Const   RESOURCE_GLOBALNET   As   Long   =   &H2&  
  Private   Const   RESOURCE_REMEMBERED   As   Long   =   &H3&  
   
  Private   Const   RESOURCEDISPLAYTYPE_DIRECTORY&   =   &H9  
  Private   Const   RESOURCEDISPLAYTYPE_DOMAIN&   =   &H1  
  Private   Const   RESOURCEDISPLAYTYPE_FILE&   =   &H4  
  Private   Const   RESOURCEDISPLAYTYPE_GENERIC&   =   &H0  
  Private   Const   RESOURCEDISPLAYTYPE_GROUP&   =   &H5  
  Private   Const   RESOURCEDISPLAYTYPE_NETWORK&   =   &H6  
  Private   Const   RESOURCEDISPLAYTYPE_ROOT&   =   &H7  
  Private   Const   RESOURCEDISPLAYTYPE_SERVER&   =   &H2  
  Private   Const   RESOURCEDISPLAYTYPE_SHARE&   =   &H3  
  Private   Const   RESOURCEDISPLAYTYPE_SHAREADMIN&   =   &H8  
  Private   Const   RESOURCETYPE_ANY   As   Long   =   &H0&  
  Private   Const   RESOURCETYPE_DISK   As   Long   =   &H1&  
  Private   Const   RESOURCETYPE_PRINT   As   Long   =   &H2&  
  Private   Const   RESOURCETYPE_UNKNOWN   As   Long   =   &HFFFF&  
  Private   Const   RESOURCEUSAGE_ALL   As   Long   =   &H0&  
  Private   Const   RESOURCEUSAGE_CONNECTABLE   As   Long   =   &H1&  
  Private   Const   RESOURCEUSAGE_CONTAINER   As   Long   =   &H2&  
  Private   Const   RESOURCEUSAGE_RESERVED   As   Long   =   &H80000000  
  Private   Const   NO_ERROR   =   0  
  Private   Const   ERROR_MORE_DATA   =   234   L         //   dderror  
  Private   Const   RESOURCE_ENUM_ALL   As   Long   =   &HFFFF  
  Private   Type   NETRESOURCE  
          dwScope   As   Long  
          dwType   As   Long  
          dwDisplayType   As   Long  
          dwUsage   As   Long  
          pLocalName   As   Long  
          pRemoteName   As   Long  
          pComment   As   Long  
          pProvider   As   Long  
  End   Type  
  Private   Type   NETRESOURCE_REAL  
          dwScope   As   Long  
          dwType   As   Long  
          dwDisplayType   As   Long  
          dwUsage   As   Long  
          sLocalName   As   String  
          sRemoteName   As   String  
          sComment   As   String  
          sProvider   As   String  
  End   Type  
  Private   Declare   Function   WNetAddConnection2   Lib   "mpr.dll"   Alias   "WNetAddConnection2A"   (lpNetResource   As   NETRESOURCE,   ByVal   lpPassword   As   String,   ByVal   lpUserName   As   String,   ByVal   dwFlags   As   Long)   As   Long  
  Private   Declare   Function   WNetOpenEnum   Lib   "mpr.dll"   Alias   "WNetOpenEnumA"   (ByVal   dwScope   As   Long,   ByVal   dwType   As   Long,   ByVal   dwUsage   As   Long,   lpNetResource   As   Any,   lphEnum   As   Long)   As   Long  
  Private   Declare   Function   WNetEnumResource   Lib   "mpr.dll"   Alias   "WNetEnumResourceA"   (ByVal   hEnum   As   Long,   lpcCount   As   Long,   lpBuffer   As   NETRESOURCE,   lpBufferSize   As   Long)   As   Long  
  Private   Declare   Function   WNetCloseEnum   Lib   "mpr.dll"   (ByVal   hEnum   As   Long)   As   Long  
  Private   Declare   Function   VarPtrAny   Lib   "vb40032.dll"   Alias   "VarPtr"   (lpObject   As   Any)   As   Long  
  Private   Declare   Sub   CopyMem   Lib   "kernel32"   Alias   "RtlMoveMemory"   (lpTo   As   Any,   lpFrom   As   Any,   ByVal   lLen   As   Long)  
  Private   Declare   Sub   CopyMemByPtr   Lib   "kernel32"   Alias   "RtlMoveMemory"   (ByVal   lpTo   As   Long,   ByVal   lpFrom   As   Long,   ByVal   lLen   As   Long)  
  Private   Declare   Function   lstrcpy   Lib   "kernel32"   Alias   "lstrcpyA"   (ByVal   lpString1   As   String,   ByVal   lpString2   As   Any)   As   Long  
  Private   Declare   Function   lstrlen   Lib   "kernel32"   Alias   "lstrlenA"   (ByVal   lpString   As   Any)   As   Long  
   
  Sub   main()  
          Const   MAX_RESOURCES   =   256  
          Const   NOT_A_CONTAINER   =   -1  
   
          Dim   bFirstTime   As   Boolean  
          Dim   lReturn   As   Long  
          Dim   hEnum   As   Long  
          Dim   lCount   As   Long  
          Dim   lMin   As   Long  
          Dim   lLength   As   Long  
          Dim   l   As   Long  
          Dim   lBufferSize   As   Long  
          Dim   lLastIndex   As   Long  
          Dim   uNetApi(0   To   MAX_RESOURCES)   As   NETRESOURCE  
          Dim   uNet()   As   NETRESOURCE_REAL  
          bFirstTime   =   True  
          Do  
                  If   bFirstTime   Then  
                          lReturn   =   WNetOpenEnum(RESOURCE_GLOBALNET,   RESOURCETYPE_ANY,   RESOURCEUSAGE_ALL,   ByVal   0&,   hEnum)  
                          bFirstTime   =   False  
                  Else  
                          If   uNet(lLastIndex).dwUsage   And   RESOURCEUSAGE_CONTAINER   Then  
                                  lReturn   =   WNetOpenEnum(RESOURCE_GLOBALNET,   RESOURCETYPE_ANY,   RESOURCEUSAGE_ALL,   uNet(lLastIndex),   hEnum)  
                          Else  
                                  lReturn   =   NOT_A_CONTAINER  
                                  hEnum   =   0  
                          End   If  
                          lLastIndex   =   lLastIndex   +   1  
                  End   If  
                  If   lReturn   =   NO_ERROR   Then  
                          lCount   =   RESOURCE_ENUM_ALL  
                          Do  
                                  lBufferSize   =   UBound(uNetApi)   *   Len(uNetApi(0))   /   2  
                                  lReturn   =   WNetEnumResource(hEnum,   lCount,   uNetApi(0),   lBufferSize)  
                                  If   lCount   >   0   Then  
                                          ReDim   Preserve   uNet(0   To   lMin   +   lCount   -   1)   As   NETRESOURCE_REAL  
                                          For   l   =   0   To   lCount   -   1  
                                                  Each   Resource   will   appear   here   as   uNet(i)  
                                                  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  
                                                  If   uNetApi(l).pLocalName   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pLocalName)  
                                                          uNet(lMin   +   l).sLocalName   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sLocalName,   ByVal   uNetApi(l).pLocalName,   lLength  
                                                  End   If  
                                                  If   uNetApi(l).pRemoteName   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pRemoteName)  
                                                          uNet(lMin   +   l).sRemoteName   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sRemoteName,   ByVal   uNetApi(l).pRemoteName,   lLength  
                                                  End   If  
                                                  If   uNetApi(l).pComment   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pComment)  
                                                          uNet(lMin   +   l).sComment   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sComment,   ByVal   uNetApi(l).pComment,   lLength  
                                                  End   If  
                                                  If   uNetApi(l).pProvider   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pProvider)  
                                                          uNet(lMin   +   l).sProvider   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sProvider,   ByVal   uNetApi(l).pProvider,   lLength  
                                                  End   If  
                                          Next   l  
                                  End   If  
                                  lMin   =   lMin   +   lCount  
                          Loop   While   lReturn   =   ERROR_MORE_DATA  
                  End   If  
                  If   hEnum   Then  
                          l   =   WNetCloseEnum(hEnum)  
                  End   If  
          Loop   While   lLastIndex   <   lMin  
          If   UBound(uNet)   >   0   Then  
                  For   l   =   0   To   UBound(uNet)  
                          Select   Case   uNet(l).dwDisplayType  
                                  Case   RESOURCEDISPLAYTYPE_DIRECTORY&  
                                          Debug.Print   "Directory...",  
                                  Case   RESOURCEDISPLAYTYPE_DOMAIN  
                                          Debug.Print   "Domain...",  
                                  Case   RESOURCEDISPLAYTYPE_FILE  
                                          Debug.Print   "File...",  
                                  Case   RESOURCEDISPLAYTYPE_GENERIC  
                                          Debug.Print   "Generic...",  
                                  Case   RESOURCEDISPLAYTYPE_GROUP  
                                          Debug.Print   "Group...",  
                                  Case   RESOURCEDISPLAYTYPE_NETWORK&  
                                          Debug.Print   "Network...",  
                                  Case   RESOURCEDISPLAYTYPE_ROOT&  
                                          Debug.Print   "Root...",  
                                  Case   RESOURCEDISPLAYTYPE_SERVER  
                                          Debug.Print   "Server...",  
                                  Case   RESOURCEDISPLAYTYPE_SHARE  
                                          Debug.Print   "Share...",  
                                  Case   RESOURCEDISPLAYTYPE_SHAREADMIN&  
                                          Debug.Print   "ShareAdmin...",  
                          End   Select  
                          Debug.Print   uNet(l).sRemoteName,   uNet(l).sComment  
                  Next   l  
          End   If  
  End   Sub  
 

NO.4   作者: wzsswz

 
                                //*在网络邻居中获取所有的工作组及计算机名*//  
                        //*在win2000下其运行速度将变得奇慢,在下到要请教各位,有何良方。*//  
   
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      StdCtrls,   ExtCtrls   ,winsock;  
   
  type  
      TNetResourceArray   =   ^TNetResource;     //网络资源类型的数组  
      TForm1   =   class(TForm)  
          Memo1:   TMemo;  
          Panel1:   TPanel;  
          Button1:   TButton;  
          Button2:   TButton;  
          Timer1:   TTimer;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   FormCreate(Sender:   TObject);  
          procedure   FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
          procedure   Button2Click(Sender:   TObject);  
          procedure   FormShow(Sender:   TObject);  
          procedure   Timer1Timer(Sender:   TObject);  
      private  
          {   Private   declarations   }  
          function   GetIP(Sender:   TObject;   fcomputername:string)   :string;  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
                                  //函数GetServerList列举出整个网络中的工作组名称,返回值为TRUE表示执行成功,  
  Function   GetServerList(   var   List   :   TStringList   )   :   Boolean;   //参数List中返回服务器的名称  
  Var  
          NetResource   :   TNetResource;  
          Buf   :   Pointer;  
          Count,BufSize,Res   :   DWORD;  
          lphEnum   :   THandle;  
          p:TNetResourceArray;  
          i,j   :   SmallInt;  
          NetworkTypeList   :   TList;  
  Begin  
          Result   :=   False;  
          NetworkTypeList   :=   TList.Create;  
          List.Clear;  
          Res   :=   WNetOpenEnum(   RESOURCE_GLOBALNET,   RESOURCETYPE_DISK,  
          RESOURCEUSAGE_CONTAINER,   Nil,lphEnum);       //获取整个网络中的文件资源的句柄,lphEnum为返回名柄  
          If   Res   <>   NO_ERROR   Then  
                exit;         //执行失败,退出  
          Count   :=   $FFFFFFFF;       //执行成功,开始获取整个网络中的网络类型信息  
          BufSize   :=   8192;       //不限资源数目  
          GetMem(Buf,   BufSize);   //缓冲区大小设置为8K  
          Res   :=   WNetEnumResource(lphEnum,   Count,   Pointer(Buf),   BufSize);//申请内存,用于获取工作组信息  
          If   (   Res   =   ERROR_NO_MORE_ITEMS   )   or   (Res   <>   NO_ERROR   )     Then   //资源列举完毕  
              Exit;     //执行失败  
          P   :=   TNetResourceArray(Buf);  
          For   I   :=   0   To   Count   -   1   Do             //记录各个网络类型的信息  
              Begin  
                NetworkTypeList.Add(p);  
                Inc(P);  
              End;  
          Res:=   WNetCloseEnum(lphEnum);   //WNetCloseEnum关闭一个列举句柄  
          If   Res   <>   NO_ERROR   Then  
                exit;      
          For   J   :=   0   To   NetworkTypeList.Count-1   Do       //列出各个网络类型中的所有工作组名称  
          Begin  
              NetResource   :=   TNetResource(NetworkTypeList.Items[J]^);//列出一个网络类型中的所有工作组名称   //网络类型信息  
                                                                //获取某个网络类型的文件资源的句柄,NetResource为网络类型信息,lphEnum为返回名柄  
              Res   :=   WNetOpenEnum(RESOURCE_GLOBALNET,   RESOURCETYPE_DISK,  
              RESOURCEUSAGE_CONTAINER,   @NetResource,lphEnum);  
              If   Res   <>   NO_ERROR   Then  
                    break;       //执行失败  
              While   true   Do     //列举一个网络类型的所有工作组的信息  
                      Begin  
                          Count   :=   $FFFFFFFF;           //不限资源数目  
                          BufSize   :=   1024*16;           //缓冲区大小设置为8K  
                          GetMem(Buf,   BufSize);     //申请内存,用于获取工作组信息,获取一个网络类型的文件资源信息,  
                          Res   :=   WNetEnumResource(lphEnum,   Count,   Pointer(Buf),   BufSize);  
                          If   (   Res   =   ERROR_NO_MORE_ITEMS   )     or   (Res   <>   NO_ERROR)   then         //资源列举完毕  
                                    break;   //执行失败  
                          P   :=   TNetResourceArray(Buf);  
                          For   I   :=   0   To   Count   -   1   Do     //列举各个工作组的信息  
                              Begin  
                                  List.Add(   StrPAS(   P^.lpRemoteName   ));  
                                  //取得一个工作组的名称  
                                  Inc(P);  
                                End;  
                        End;  
                  Res   :=   WNetCloseEnum(lphEnum);         //关闭一次列举  
                  If   Res   <>   NO_ERROR   Then  
                          break;     //执行失败  
              End;  
          Result   :=   True;  
          FreeMem(Buf);  
          NetworkTypeList.Destroy;  
  End;  
   
  {function   TForm1.GetIP(Sender:   TObject;fcomputername:String):String;  
  var  
      ch:array[1..32]   of   Char;  
      I   :   Integer;  
      WSData:TWSAData;  
      MyHost:PHostEnt;  
      S:String;  
      host:string;  
  begin  
      host:=   fcomputername;  
      if   WSAstartup(2,wsdata)<>0   then   S:=Winsock   Error  
          else  
          if   GetHostName(@ch[1],32)<>0   then   S:=HostName   Error  
              else   begin  
                  StrPCopy(@ch[1],host);  
                  MyHost:=GetHostByName(@ch[1]);  
                  if   MyHost=nil   then   S:=IP   Error  
                      else   begin  
                          S:=;  
                          for   i:=1   to   4   do   begin  
                              S:=S+IntToStr(Ord(MyHost.h_addr^[i-1]));  
                              if   i<4   then   S:=S+.;  
                          end;  
                      end;  
              end;  
      Result:=S;  
  end;       }  
   
  function   TForm1.GetIP(Sender:   TObject;   fcomputername:string)   :string;  
  var  
          WSAData:   TWSAData;  
          HostEnt:   PHostEnt;  
  begin  
          HostEnt   :=   nil;  
          WSAStartup(2,   WSAData);  
          HostEnt   :=   gethostbyname(PChar(fComputerName));  
          if   HostEnt   <>   nil   then  
          begin  
              with   HostEnt^   do  
                  result:=   Format(%d.%d.%d.%d,   [Byte(h_addr^[0]),   Byte(h_addr^[1]),   Byte(h_addr^[2]),Byte(h_addr^[3])]);  
          end;  
          WSACleanup;  
  end;  
           
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
    sl,s2:TstringList;  
    i,j,k:integer;  
    temp:string;  
  begin  
        temp:=d:\computer.txt;  
        memo1.lines.Clear;  
        sl:=Tstringlist.create;  
        s2:=Tstringlist.create;  
        try  
              if   GetServerList(sl)   then  
              begin  
                for   i:=0   to   sl.count-1   do  
                  begin  
                        memo1.lines.Add   (sl.Strings[i]+:);  
                        try  
                            winexec(pchar(command.com   /C   net   view   /workgroup:+sl.Strings[i]+   >+temp),sw_hide);  
                        except  
                        end;  
                        k:=120;  
                        repeat;  
                            sleep(k);  
                            k:=k+40;  
                        until  
                          fileexists(temp);  
                        s2.LoadFromFile(temp);  
                        for   j:=1   to   s2.count-1   do  
                        begin  
                            if   pos(:,s2.Strings[j])   >0   then  
                                    memo1.lines.Add   (s2.Strings[j]);  
                            if   pos(\\,s2.Strings[j])   >0   then  
                                    memo1.lines.Add   (   +copy(s2.Strings[j],1,15)+   IP:   +   GetIP(Sender,trim(copy(s2.Strings[j],3,20))));  
                          end;  
                end;  
                memo1.lines.Add(工作组个数:+inttostr(sl.count));  
              end  
              else  
                memo1.lines.Add(没有找到工作组!);  
        except  
        end;  
   
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
        memo1.lines.Clear;  
  end;  
   
  procedure   TForm1.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
        memo1.lines.SaveToFile(LKnet.spl);  
        action:=cafree;  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
        close;  
  end;  
   
  procedure   TForm1.FormShow(Sender:   TObject);  
  begin  
        IF   fileexists(LKnet.spl)     then  
            Memo1.Lines.LoadFromFile(LKnet.spl);  
  end;  
   
  procedure   TForm1.Timer1Timer(Sender:   TObject);  
  begin  
      if   pos(工作组个数,   memo1.Text)   =0   then  
            button1click(sender);  
  end;  
   
  end.  
   
 

NO.5   作者: bestofbest

学习  
  如果速度确实得到提升,那就非常棒了  
 


 ·datagrid再问    »显示摘要«
    摘要: 在一个datagrid里使用了一个摸板列(checkbox),并有些绑定列,实现了分页功能,现在发现一问题,就是假设我们分了两页,当用户在第一页时选中了几个checkbox,在换页后,又回到第一页时,由于再次绑定数据所以原来选中的效果丢失,我该如何保持选中呢?在服务端我无法得知是选中了哪些列啊!!! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE