在Delphi中获取本地计算机名称的最佳方法是什么

Ali*_*ter 4 delphi computer-name

代码需要与D2007和D2009兼容.


我的回答:感谢所有回答的人,我和他一起去了:

function ComputerName : String;
var
  buffer: array[0..255] of char;
  size: dword;
begin
  size := 256;
  if GetComputerName(buffer, size) then
    Result := buffer
  else
    Result := ''
end;
Run Code Online (Sandbox Code Playgroud)

Mar*_*ins 17

Windows API GetComputerName应该可以工作.它在windows.pas中定义.


ska*_*adt 12

另一种效果很好的方法是通过环境变量获取计算机名称.这种方法的优点(或取决于您的软件的缺点)是您可以轻松地将程序作为一台不同的机器运行.

Result := GetEnvironmentVariable('COMPUTERNAME');
Run Code Online (Sandbox Code Playgroud)

计算机名称环境变量由系统设置.要"覆盖"该行为,您可以创建一个调用程序的批处理文件,在调用之前设置环境变量(每个命令解释器获取其自己的环境"副本",并且更改是该会话或任何子项的本地更改从该会议开始).


Con*_*oyd 8

来自Windows API的GetComputerName是可行的方法.这是它的包装.

function GetLocalComputerName : string;
    var c1    : dword;
    arrCh : array [0..MAX_PATH] of char;
begin
  c1 := MAX_PATH;
  GetComputerName(arrCh, c1);
  if c1 > 0 then
    result := arrCh
  else
    result := '';
end;
Run Code Online (Sandbox Code Playgroud)