有没有现成的代码可以实现在DELPHI应用程序中得到WINDOWS的登陆用户名与机器名
比如gaoyb(机器名)/Administrator(用户名).或者通过什么控件到或者访问什么文件得到请您给我一个思路!
谢谢!

解决方案 »

  1.   

    1.得到用户名
    procedure TForm1.Button1Click(Sender: TObject);
    var
      pszLoginid: array[0 .. 199] of char;
      nSize: Cardinal;
    begin
      nSize := 200;
      if WNetGetUser(nil, pszLoginid, nSize) = NO_ERROR then
        ShowMessage(StrPas(pszLoginid))
      else
        ShowMessage('Error');
    end;
      

  2.   

    2.得到机器名
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ComputerName: array[0..MAX_COMPUTERNAME_LENGTH+1] of char;
      Size: cardinal;
    begin
      Size := MAX_COMPUTERNAME_LENGTH+1;  if GetComputerName(ComputerName, Size) then
         Edit1.Text := StrPas(Computername)
      else
         Showmessage('Computer Name Not Found');
    end;
      

  3.   

    得到用户名:
      var
      Username : pChar;
      nSize : Cardinal;
    begin
      Username:=StrAlloc(30);
      nSize:=30;
      GetUserName(Username,nSize);
      ShowMessage(Username);
      StrDispose(Username);
    得到机器名:
    function GetComputerName: AnsiString;
      var lpBuffer: array[0..MAX_PATH] of char;
      dwSize: DWORD;
    begin
      dwSize:= MAX_PATH;
      if not Windows.GetComputerName(lpBuffer, dwSize) then
      raise
      Exception.Create(SysErrorMessage(GetLastError()));
      Result:= StrPas(lpBuffer);
    end;