获取计算机名称并在delphi中使用showmessage显示它

use*_*090 -1 delphi delphi-7

我用这个代码

如何让它作为信息出现在我的屏幕上?

Function GetUserFromWindows:String;    
Var    
  UserName : string;   
  UserNameLen : Dword;    
Begin    
  UserNameLen := 255;  
  SetLength(userName, UserNameLen) ;   
  If GetUserName(PChar(UserName), UserNameLen) Then     
    Result := Copy(UserName,1,UserNameLen - 1)       
  Else     
    Result := 'Unknown';      
End;
Run Code Online (Sandbox Code Playgroud)

Ken*_*ite 12

你的功能是错误的,首先:

function GetUserFromWindows: string;
var
  iLen: Cardinal;
begin
  iLen := 256;         // UNLEN constant in LMCons.h says 256 - hard coded.
  Result := StringOfChar(#0, iLen);
  GetUserName(PChar(Result), iLen);
  SetLength(Result, iLen);
end;
Run Code Online (Sandbox Code Playgroud)

如果你真的想要计算机名称,正如你的问题标题所说,它没有太大的不同:

function GetComputerNameFromWindows: string;
var
  iLen: Cardinal;
begin
  iLen := MAX_COMPUTERNAME_LENGTH + 1;         // From Windows.pas
  Result := StringOfChar(#0, iLen);
  GetComputerName(PChar(Result), iLen);
  SetLength(Result, iLen);
end;
Run Code Online (Sandbox Code Playgroud)

现在,您可以随意使用其中任何一个:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(GetUserFromWindows);
  ShowMessage(GetComputerNameFromWindows);
end;
Run Code Online (Sandbox Code Playgroud)

要么:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption := GetUserFromWindows;
  Label2.Caption := GetComputerNameFromWindows;
end;
Run Code Online (Sandbox Code Playgroud)