如何动态获得WINDOWS操作系统中的登录用户名?(50分)

  • 主题发起人 主题发起人 kingdeezj
  • 开始时间 开始时间
K

kingdeezj

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大侠一个问题

如何动态获得WINDOWS操作系统中的登录用户名?

2001/12/30
 
function GetCurrentUserName : string;
const
cnMaxUserNameLen = 254;
var
sUserName : string; dwUserNameLen : DWord;
begin
dwUserNameLen := cnMaxUserNameLen-1;
SetLength( sUserName, cnMaxUserNameLen );
GetUserName( PChar( sUserName ), dwUserNameLen ); SetLength( sUserName, dwUserNameLen );
Result := sUserName;
end;
 
代码:
  //================================================================
  // Function: GetMachine()
  // 获取本机器的名称
  // 参数:无
  // 返回:string
  // 完成度:95%
  //================================================================

  function GetMachine: string;
  var
    n: dword;
    buf: pchar;
  const
    rkMachine = {HKEY_LOCAL_MACHINE}
    '/SYSTEM/CurrentControlSet/Control/ComputerName/ComputerName';
    rvMachine = 'ComputerName';
  begin
    n := 255;
    buf := stralloc(n);
    GetComputerName(buf, n);
    result := buf;
    strdispose(buf);
    with TRegistry.Create do
    begin
      rootkey := HKEY_LOCAL_MACHINE;
      if OpenKeyReadOnly(rkMachine) then
      begin
        if ValueExists(rvMachine) then
          result := ReadString(rvMachine);
        closekey;
      end;
      free;
    end;
  end;

  //================================================================
  // Function: GetUser()
  // 获取系统中,当前用户的用户名
  // 参数:无
  // 返回:string
  // 完成度:95%
  //================================================================

  function GetUser: string;
  var
    n: dword;
    buf: pchar;
  begin
    n := 255;
    buf := stralloc(n);
    GetUserName(buf, n);
    result := buf;
    strdispose(buf);
  end;
 
嗨,哥们儿!
谢谢了。以后请多多指教!

KINGDEEZG
2001/12/30
 
再,问一个问题
我把它放再一个单独的文件里,FUNCTION.PAS里,
可是我在其它程序里没有办法用,说没有定义,其它PAS力我USES  FUNCTION了啊。

unit Function;
interface
uses
windows,SysUtils,Registry;



{function getmachine:string ;}

implementation

//================================================================
// Function: GetMachine()
// 获取本机器的名称
// 参数:无
// 返回:string
// 完成度:95%
//================================================================

function GetMachine: string;
var
n: dword;
buf: pchar;
const
rkMachine = {HKEY_LOCAL_MACHINE}
'/SYSTEM/CurrentControlSet/Control/ComputerName/ComputerName';
rvMachine = 'ComputerName';
begin
n := 255;
buf := stralloc(n);
GetComputerName(buf, n);
result := buf;
strdispose(buf);
with TRegistry.Create do
begin
rootkey := HKEY_LOCAL_MACHINE;
if OpenKeyReadOnly(rkMachine) then
begin
if ValueExists(rvMachine) then
result := ReadString(rvMachine);
closekey;
end;
free;
end;
end;

//================================================================
// Function: GetUser()
// 获取系统中,当前用户的用户名
// 参数:无
// 返回:string
// 完成度:95%
//================================================================

function GetUser: string;
var
n: dword;
buf: pchar;
begin
n := 255;
buf := stralloc(n);
GetUserName(buf, n);
result := buf;
strdispose(buf);
end;



end.
 
应该这样

Function: GetMachine()

implementation
 
后退
顶部