欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Delphi访问活动目录

程序员文章站 2022-06-07 13:06:36
...

活动目录Active Directory是用于Windows Server的目录服务,它存储着网络上各种对象的有关信息,并使该信息易于管理员和用户查找及使用。Active Directory使用结构化的数据存储作为目录信息的逻辑层次结构的基础。

在某些情况下我们需要通过程序来读取Active Directory中的信息,我们可以使用微软提供的ADSI(Active Directory Services Interface)。ADSI是一组以COM接口形式提供的目录 服务,因此任何支持COM编程的语言如Delphi、VB、VC等都可以使用ADSI。

在Delphi中使用ADSI需要导入活动目录类型库,具体操作如下:在IDE中选择菜单“Project->Import Type Library”,在弹出的对话框中选择“Active Ds Type Libarary(version 1.0)”,单击“Create Unit”,Delphi会自动产生封装单元文件。只要在相应文件中引用该单元文件即可使用ADSI了。下面给出一个在Delphi6中使用ADSI访问Windows Server活动目录信息的示例代码。

Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsunitUnit2;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
interface
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsuses
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsDialogs,ActiveDs_TLB,ActiveX,ComObj,ComCtrls,StdCtrls;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowstype
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsTForm2
=class(TForm)
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsGroupBox1:TGroupBox;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvGroup:TListView;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsGroupBox2:TGroupBox;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvUser:TListView;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsButton1:TButton;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureButton1Click(Sender:TObject);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
private
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsDelphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
...{Privatedeclarations}
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsfunctionGetObject(
constName:String):IDispatch;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureEnumerateUsers(Container:IAdsContainer);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureAddGroupToListView(AGroup:IADsGroup);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureAddUserToListView(AUser:IAdsUser);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
public
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsDelphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
...{Publicdeclarations}
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsvar
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsForm2:TForm2;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsimplementation
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsDelphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
...{$R*.dfm}
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsDelphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
...{TForm2}
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureTForm2.AddGroupToListView(AGroup:IADsGroup);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsbegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvGroup.Items.Add.Caption:
=AGroup.Name;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureTForm2.AddUserToListView(AUser:IAdsUser);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsbegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowswithlvUser.Items.Add
dobegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsCaption:
=AUser.FullName;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsSubItems.Add(VarToStr(AUser.Get(
'sAMAccountName')));
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureTForm2.EnumerateUsers(Container:IAdsContainer);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsvar
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsADsObj:IADs;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsValue:LongWord;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsEnum:IEnumVariant;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsADsTempOjb:OleVariant;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsbegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsEnum:
=(Container._NewEnum)asIEnumVariant;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
while(Enum.Next(1,ADsTempOjb,Value)=S_OK)dobegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsADsObj:
=IUnknown(ADsTempOjb)asIADs;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
try
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
ifSameText(ADsObj.Class_,'Group')thenbegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsAddGroupToListView(ADsObj
asIADsGroup);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsEnumerateUsers(ADsObj
asIAdsContainer);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
elseifSameText(ADsObj.Class_,'User')then
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsAddUserToListView(ADsObj
asIADsUser);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsexcept
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsfunctionTForm2.GetObject(
constName:String):IDispatch;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsvar
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsEaten:Integer;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsMoniker:IMoniker;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsBindContext:IBindCtx;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsbegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsOleCheck(CreateBindCtx(
0,BindContext));
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsOleCheck(MkParseDisplayName(BindContext,PWideChar(WideString(Name)),Eaten,Moniker));
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsOleCheck(Moniker.BindToObject(BindContext,Nil,IDispatch,Result));
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsprocedureTForm2.Button1Click(Sender:TObject);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsvar
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsContainer:IADsContainer;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsbegin
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsContainer:
=GetObject('LDAP://OU=Suzhou,OU=root,DC=ap,DC=emersonclimate,DC=org')asIADsContainer;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvGroup.Items.BeginUpdate;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvUser.Items.BeginUpdate;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
try
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsButton1.Enabled:
=False;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsEnumerateUsers(Container);
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsButton1.Enabled:
=True;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
finally
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvGroup.Items.EndUpdate;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowslvUser.Items.EndUpdate;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsContainer._Release;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend;
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindows
Delphi访问活动目录
            
    
    博客分类: Delphi delphiwindowsend.

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关标签: delphi windows