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
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;
ok, måske det kunne hjælpe lidt på vej, kigger på det senere, hvis du ikke får svar :)
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.