我用这个代码
如何让它作为信息出现在我的屏幕上?
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)