17. プリンタ取得サンプルコード(VB)
Public Shared Function GetPrintQueues() As IList(Of PrintQueue)
Dim printers As New List(Of PrintQueue)()
Using root = GetRootEntry()
'ルートのDirectoryEntryを取得
Dim filter = "(objectCategory= PrintQueue)"
Using searcher As New DirectorySearcher(root, filter)
Using results = searcher.FindAll()
For Each res As SearchResult In results
printers.Add(DirectCast(
CreateInstance(res.GetDirectoryEntry()), PrintQueue))
Next
End Using
End Using
End Using
Return printers
End Function
※root は一般的には New DirectoryEntry(LDAPのルートパス) をセット
※CreateInstance メソッドは DirectoryEntry から DirectoryObject を作成
17
18. プリンタ取得サンプルコード(C#)
public static IList<PrintQueue> GetPrintQueues() {
var printers = new List<PrintQueue>();
using (var root = GetRootEntry()) {
//ルートのDirectoryEntryを取得
var filter = "(objectCategory=PrintQueue)";
using (var searcher = new DirectorySearcher(root, filter)) {
using (var results = searcher.FindAll()) {
foreach (SearchResult res in results) {
printers.Add(
(PrintQueue)CreateInstance(res.GetDirectoryEntry()));
}
}
}
}
return printers;
}
※root は一般的には new DirectoryEntry(LDAPのルートパス) をセット
※CreateInstance メソッドは DirectoryEntry から DirectoryObject を作成
18