線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2577
推到 Plurk!
推到 Facebook!

Delphi如何取得Windows登入者帳號,群組

答題得分者是:Justmade
wwwmis
一般會員


發表:2
回覆:2
積分:0
註冊:2003-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-24 22:50:29 IP:218.165.xxx.xxx 未訂閱
我公司是NT Server,每一個Client端登入,在NT上都有建立使用者帳號, 今我要開發一個系統,要一執行立刻以Windows登入者帳號為預設值進入, 省去再Keyin一次帳號的步驟,User只要Keyin 密碼即可, 這段程式如何寫呢? 請高手幫幫忙,謝謝!
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-24 23:54:29 IP:61.230.xxx.xxx 未訂閱
引言: 我公司是NT Server,每一個Client端登入,在NT上都有建立使用者帳號, 今我要開發一個系統,要一執行立刻以Windows登入者帳號為預設值進入, 省去再Keyin一次帳號的步驟,User只要Keyin 密碼即可, 這段程式如何寫呢? 請高手幫幫忙,謝謝!
用 GetUserName 可以取得目前的使用者名稱. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-25 08:53:18 IP:218.16.xxx.xxx 未訂閱
從 Registry 取資料的方法 :    
function MyGetDomainOrWorkgroup: string;
var
  Reg: TRegistry;
begin
  Result := '';
  Reg := TRegistry.Create(KEY_READ);
  Reg.RootKey := HKEY_LOCAL_MACHINE;      if (Reg.KeyExists('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon')) then
  begin
    Reg.OpenKey( 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',False );
    Result := Reg.ReadString('DefaultDomainName');
  end
  else if (Reg.KeyExists('System\CurrentControlSet\Services\VxD\VNETSUP')) then
  begin
    Reg.OpenKey('System\CurrentControlSet\Services\VxD\VNETSUP', False);
    Result := Reg.ReadString( 'Workgroup');
  end;
  Reg.CloseKey;
  Reg.Destroy;
end;    Function MyGetComputerName : String;
var
  reg: TRegIniFile;
begin
  reg := TRegIniFile.create('');
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('System\CurrentControlSet\Control\ComputerName',true);
    result := reg.ReadString('ComputerName','ComputerName','');
  finally
    reg.free;
  end;
end;    Function MyGetUserName : String;
var
  reg: TRegistry;
begin
  reg := TRegistry.create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\',true);
    result := reg.ReadString('Logon User Name');
  finally
    reg.free;
  end;
end;
*程式碼好像有參考網上資源及JCL不過太久忘了。
wwwmis
一般會員


發表:2
回覆:2
積分:0
註冊:2003-07-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-29 23:01:54 IP:218.165.xxx.xxx 未訂閱
這段能在Windows 2000上取得帳號, Win98不行,如何修改呢? Function MyGetUserName : String; var reg: TRegistry; begin reg := TRegistry.create; try reg.RootKey := HKEY_CURRENT_USER; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\',true); result := reg.ReadString('Logon User Name'); finally reg.free; end; end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-30 08:33:02 IP:218.16.xxx.xxx 未訂閱
UserName 來說用 GetUserName 的 API 會較通用 使用 api 取 User Name / Computer Name 的方式 :    
var
PChar1 : PChar;
Size : DWORD;
begin
  Size := 20;
  PChar1 := AllocMem(Size);
  GetUserName(PChar1,Size);
  lbUser.Caption := PChar1;
  Size := 20;
  GetComputerName(PChar1,Size);
  lbCom.Caption := PChar1;
  FreeMem(PChar1);
end;    
系統時間:2024-05-02 19:30:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!