如何用DELPHI代码实现获得本地计算机名(不用控件)?

解决方案 »

  1.   

    发现SQL SERVER 数据库:
    var
      SQLServer : Variant;
      ServerList : Variant;
      i,nServers : integer;
    begin
      Screen.Cursor := crHourGlass;
      try
       SQLServer := CreateOleObject('SQLDMO.Application');
        ServerList:= SQLServer.ListAvailableSQLServers;
        nServers:=ServerList.Count;
        try
          for i := 1 to nservers do
             cbDBServer.Items.Add(ServerList.Item(i));
        finally
          SQLServer := Null;
          ServerList := Null ;
        end;
      except
      end;
      Screen.Cursor := crDefault ;
      FindOk := True;
      

  2.   

    function GetLocalHost : string;
    var
      S:PChar;
      nSize:Cardinal;
    begin
      nSize:=MAX_COMPUTERNAME_LENGTH+1;
      GetMem(S,nSize);
      GetComputerName(S,nSize);
      Result:=StrPas(S);
      FreeMem(S);
    end;
      

  3.   

    1:通过注册表得到:
    function TForm1.read_computername:string;
    var
      Areg:Tregistry;
    begin
       Result:='';
       Areg:=TRegistry.Create;
       with Areg do
       begin 
       Try
         bootKey:=HKEY_LOCAL_MACHINE;
         If OpenKey('SYSTEM\ControlSet001\Control\ComputerName\ComputerName',false) Then
         Begin
          Try
           result:=:=ReadString('ComputerName');
           Except
           End;
         End;
         closekey;
        Finally
         Free;//destroy;
       end;
      End;
    end;
    2:api函数
    function GetCompName:String;
    var Buff:Array[0..64]of Char;
        Len:Cardinal;
    begin
        Len:=64;
        GetComputerName(@Buff,Len);
        Buff[Len]:=#0;
        Result:=Buff;
    end;
      

  4.   

    function tform1.get_name:string;    var  ComputerName: PChar;  size: DWord;    begin        GetMem(ComputerName,255);        size:=255;        if GetComputerName(ComputerName,size)=False then           result:=''        else           result:=ComputerName;        FreeMem(ComputerName);    end;    procedure TForm1.Button1Click(Sender: TObject);    begin      label1.Caption:=get_name;    end;