Avatar billede safl Nybegynder
22. maj 2006 - 17:39 Der er 7 kommentarer og
1 løsning

GetComputerNameEx hvordan?

Hey,

Jeg kunne meget godt bruge en funktion der kan tage en maskines FULDE navn ved hjælp af API kaldet:

GetComputerNameEx()

Ned fulde navn jeg foreksempel computernavn.domain.local.

Håber der er nogle der kan give et eksempel på brugen af den. Det giver 200 af de gode ;)

på forhånd tak,
Simon
Avatar billede martinlind Nybegynder
22. maj 2006 - 17:50 #1
Kan du ikke bruge noget af dette :

function GetComputerNameStr : string;
var
  Buffer : array[0..MAX_COMPUTERNAME_LENGTH - 1] of Char;
  Len : DWord;
begin
  Len:=SizeOf(Buffer);
  if GetComputerName(@Buffer, Len) then
    Result:=string(Buffer)
  else
    Result:='';
end;
Avatar billede safl Nybegynder
22. maj 2006 - 17:52 #2
Det er så brug af GetComputerName og ikke GetComputerNameEx. Problemet er at GetComputerName ikke tager det FULDE navn.
Avatar billede martinlind Nybegynder
22. maj 2006 - 18:03 #3
ok, måske det kunne hjælpe lidt på vej, kigger på det senere, hvis du ikke får svar :)
Avatar billede snowball Novice
23. maj 2006 - 14:15 #5
Så fik jeg det testet, og lavet en lille funktion til det.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

type
  COMPUTER_NAME_FORMAT = (
    ComputerNameNetBIOS,
    ComputerNameDnsHostname,
    ComputerNameDnsDomain,
    ComputerNameDnsFullyQualified,
    ComputerNamePhysicalNetBIOS,
    ComputerNamePhysicalDnsHostname,
    ComputerNamePhysicalDnsDomain,
    ComputerNamePhysicalDnsFullyQualified,
    ComputerNameMax);

implementation

function GetComputerNameEx(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPSTR;
    var nSize: DWORD): BOOL; stdcall; external kernel32 name 'GetComputerNameExA';

{$R *.DFM}

Function GetFullComputerName: String;
var
  dSize: dword;
  sResult: string;
begin
  SetLength(sResult, 255);
  dSize := 255;
  GetComputerNameEx(ComputerNameDnsFullyQualified,pchar(sResult), dSize);
  if dSize > 1 then
    Result := sResult
  else
    Result := '(nil)';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption := GetFullComputerName;
end;

end.
Avatar billede snowball Novice
09. juni 2006 - 23:35 #6
Fandt du ud af det? :)
Avatar billede snowball Novice
25. august 2006 - 21:11 #7
safl: Fik du det til at virke? :)
Avatar billede safl Nybegynder
27. marts 2007 - 16:34 #8
Takker for hjælpen jeg glemte helt eksperten ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester