DeviceName: String;
DeviceName: System.String;
Свойство DeviceName возвращает наименование устройства.
Свойство используется, если для пользователей установлен режим ограничения на используемые для печати принтеры.
Для выполнения примера добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET). Добавьте ссылку на NET-сборку System.Windows.Forms для примера на Fore.NET.
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
DP: IMetabaseDevicePolicy;
DevDess: IMetabaseDeviceDescriptors;
Users: IMetabaseUsers;
User: IMetabaseUser;
Printers: IMetabaseDeviceDescriptors;
DevDes: IMetabaseDeviceDescriptor;
Category: ISecurityCategory;
Desc: ISecurityDescriptor;
Lic: Object;
Begin
MB := MetabaseClass.Active;
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
MP := MS.Policy;
DP := MP.PrintersPolicy;
DevDess := DP.Enumerate;
Users := MS.Users;
User := Users.Administrator;
Printers := User.Printers;
Try
DevDess.Add("printserver1\Microsoft Office Document Image Writer");
DevDes := DevDess.Add("printserver2\snagit 8");
Except On e: Exception Do
WinApplication.InformationBox(e.Message);
End Try;
Desc := DevDes.SecurityDescriptor;
Desc.Edit;
Category := MP.MandatoryAccess.Category(0);
Desc.AccessToken.ClassificationLabel(Category) := Category.Level(1);
Desc.Apply(False);
Printers.Add(DevDes.DeviceName);
MS.Apply;
Lic := Null;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports System.Windows.Forms;
…
Public Shared Sub Main(Params : StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
DP: IMetabaseDevicePolicy;
DevDess: IMetabaseDeviceDescriptors;
Users: IMetabaseUsers;
User: IMetabaseUser;
Printers: IMetabaseDeviceDescriptors;
DevDes: IMetabaseDeviceDescriptor;
Category: ISecurityCategory;
Desc: ISecurityDescriptor;
Lic: Object;
Begin
MB := Params.Metabase;
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
MP := Ms.Policy;
DP := MP.PrintersPolicy;
DevDess := DP.Enumerate();
Users := MS.Users;
User := Users.Administrator;
Printers := User.Printers;
Try
DevDess.Add("printserver1\Microsoft Office Document Image Writer");
DevDes := DevDess.Add("printserver2\snagit 8");
Except On e: System.Exception Do
System.Windows.Forms.MessageBox.Show(e.Message);
End Try;
Desc := DevDes.SecurityDescriptor;
Desc.Edit();
Category := MP.MandatoryAccess.Category[0];
Desc.AccessToken.ClassificationLabel[Category] := Category.Level[1];
Desc.Apply(False);
Printers.Add(DevDes.DeviceName);
MS.Apply();
Lic := Null;
End Sub;
После выполнения примера в политику безопасности будет добавлено два принтера, один из которых будет добавлен в список доступных для печати принтеров администратора с установленным уровнем безопасности.
См. также: