Function GetComputerName():String; var CNameBuffer:PChar; fl_loaded:Boolean; CLen : ^DWord; ComputerName:string; begin GetMem(CNameBuffer,255); New(CLen); CLen^:= 255; fl_loaded := GetComputerName(CNameBuffer,CLen^); if fl_loaded then ComputerName := StrPas(CNameBuffer) else ComputerName := 'Unkown'; FreeMem(CNameBuffer,255); Dispose(CLen); result:=ComputerName; end;
getcomputername查查帮助就明白了
implementation uses winsock; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var buffer: array [1..32] of Char; WS_DATA: TWSAData; begin if WSAstartup(2, WS_DATA) <> 0 THEN showmessage('error'); if getHostName(@buffer[1], 32) = 0 then ShowMessage(buffer); end;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); var computername:pchar; size:dword; begin getmem(computername,255); size:=255; if getcomputername(computername,size)=false then begin messagebox(handle,'获取计算机名失败','错误',mb_ok+mb_iconerror); freemem(computername); exit; end; edit1.Text:=computername; freemem(computername);end;procedure TForm1.Button2Click(Sender: TObject);var computername:string; result:bool; error:dword; begin computername:=edit2.Text; result:=setcomputername(pchar(computername)); if result=false then begin error:=getlasterror(); messagebox(handle,'更改计算机名失败','错误',mb_ok+mb_iconerror) end; application.MessageBox('重新启动计算机后,将会更改计算机名','提示',64); end;end.
function TfrmDataModule.GetHostName: string; var computername:array[0..max_computername_length+1] of char; size :cardinal; begin result:=''; size:=max_computername_length+1; getcomputername(computername,size); result:=strpas(computername); end;
Function GetComputerName():String; var buffer: array [1..32] of Char; WS_DATA: TWSAData; begin if WSAstartup(2, WS_DATA) <> 0 THEN GetComputerName:='error'; if getHostName(@buffer[1], 32) = 0 then GetComputerName:=buffer; end;
Function GetComputerNm:String; var name:PChar; i:Cardinal; begin GetMem(name,255); i:=255; GetComputerName(name,i); Result:=name; FreeMem(name,255); end; { GetComputerName}查 Win32 SDK 帮助.
var
CNameBuffer:PChar;
fl_loaded:Boolean;
CLen : ^DWord;
ComputerName:string;
begin
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetComputerName(CNameBuffer,CLen^); if fl_loaded then
ComputerName := StrPas(CNameBuffer)
else
ComputerName := 'Unkown'; FreeMem(CNameBuffer,255);
Dispose(CLen);
result:=ComputerName;
end;
uses winsock;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
buffer: array [1..32] of Char;
WS_DATA: TWSAData;
begin
if WSAstartup(2, WS_DATA) <> 0 THEN
showmessage('error');
if getHostName(@buffer[1], 32) = 0 then
ShowMessage(buffer);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
computername:pchar;
size:dword;
begin
getmem(computername,255);
size:=255;
if getcomputername(computername,size)=false then
begin
messagebox(handle,'获取计算机名失败','错误',mb_ok+mb_iconerror);
freemem(computername);
exit;
end;
edit1.Text:=computername;
freemem(computername);end;procedure TForm1.Button2Click(Sender: TObject);var computername:string;
result:bool;
error:dword;
begin
computername:=edit2.Text;
result:=setcomputername(pchar(computername));
if result=false then
begin
error:=getlasterror();
messagebox(handle,'更改计算机名失败','错误',mb_ok+mb_iconerror)
end;
application.MessageBox('重新启动计算机后,将会更改计算机名','提示',64);
end;end.
var
computername:array[0..max_computername_length+1] of char;
size :cardinal;
begin
result:='';
size:=max_computername_length+1;
getcomputername(computername,size);
result:=strpas(computername);
end;
var
buffer: array [1..32] of Char;
WS_DATA: TWSAData;
begin
if WSAstartup(2, WS_DATA) <> 0 THEN
GetComputerName:='error';
if getHostName(@buffer[1], 32) = 0 then
GetComputerName:=buffer;
end;
Function GetComputerNm:String;
var name:PChar;
i:Cardinal;
begin
GetMem(name,255);
i:=255;
GetComputerName(name,i);
Result:=name;
FreeMem(name,255);
end; { GetComputerName}查 Win32 SDK 帮助.