以下是一个调用API获得用户名的例子: procedure TForm1.Button1Click(Sender: TObject); var pcUser : PChar; dwUSize : DWORD; begin dwUSize := 21; // user name can be up to 20 characters GetMem( pcUser, dwUSize ); // allocate memory for the string try if Windows.GetUserName( pcUser, dwUSize ) then edit1.Text := pcUser finally FreeMem( pcUser ); // now free the memory allocated for the string end; end;
这个也太片面了,ShellApi只是封装了与外壳有关的api
比如MCI系列API,就要uses mmsystem
procedure TForm1.Button1Click(Sender: TObject);
var
pcUser : PChar;
dwUSize : DWORD;
begin
dwUSize := 21; // user name can be up to 20 characters
GetMem( pcUser, dwUSize ); // allocate memory for the string
try
if Windows.GetUserName( pcUser, dwUSize ) then
edit1.Text := pcUser
finally
FreeMem( pcUser ); // now free the memory allocated for the string
end;
end;