diff --git a/CreoLauncher.ps1 b/CreoLauncher.ps1 index 16a050f..b6fc572 100644 --- a/CreoLauncher.ps1 +++ b/CreoLauncher.ps1 @@ -1,4 +1,4 @@ -# todo: +# todo: Убрать автовыбор нескольких базовых лицензий Add-Type -AssemblyName "PresentationFramework" @@ -6,24 +6,24 @@ Add-Type -AssemblyName "System.Windows.Forms" Add-Type -AssemblyName "System.Drawing" <# - # - CreoLaunching.LicenseUserRestrict($user). - # : + # Глобальные объекты необходимы для метода-заглушки CreoLaunching.LicenseUserRestrict($user). + # Где: # - # $tableLicenseName - : = - # $tableLicenseBase - : = - # $tableLicenseServ - : = @ - # $tableLicenseLink - : = + # $tableLicenseName - таблица дополнительных модулей: Код = Наименование + # $tableLicenseBase - таблица базовых модулей: Код = Наименование + # $tableLicenseServ - таблица серверов лицензий: Псевдоним = Порт@Адрес + # $tableLicenseLink - таблица ссылок на описание дополнительных модулей: Наименование = Ссылка # - # CreoLaunching.LicenseUserRestrict($user) - # . + # При настоящей реализации получения списка ограничений для пользователя в методе CreoLaunching.LicenseUserRestrict($user) + # глобальные объекты и файл с таблицами могут быть удалены. #> $Global:tableLicenseName = New-Object HashtableMods -ArgumentList '.\CreoLauncher.txt', 'tableLicenseName' $Global:tableLicenseLink = New-Object HashtableMods -ArgumentList '.\CreoLauncher.txt', 'tableLicenseLink' $Global:tableLicenseBase = New-Object HashtableMods -ArgumentList '.\CreoLauncher.txt', 'tableLicenseBase' $Global:tableLicenseServ = New-Object HashtableMods -ArgumentList '.\CreoLauncher.txt', 'tableLicenseServ' <# - # . - # / , , . + # Объекты выполняют роль конфигурации. + # Добавление/удаление записей таблиц, а также изменение содержимого записей, повлияет на логику выполнения. #> $creoPackageSpecs = New-Object CreoParamSpec @{ 'CreoDir' = "$env:ProgramFiles\PTC\Creo*\Parametric\bin" @@ -50,12 +50,12 @@ $tableMessageENUS = New-Object HashtableMods @{ 'MsgRunPTCStatus' = 'Show license status' } $tableMessageRURU = New-Object HashtableMods @{ - 'MsgSelectInvite' = ' ' - 'MsgSelectAvaile' = '' - 'MsgWinHeadError' = '!' - 'MsgErrCreoParam' = ' Creo Parametric ' - 'MsgRunCreoParam' = ' Creo Parametric' - 'MsgRunPTCStatus' = ' ' + 'MsgSelectInvite' = 'Выберите необходимые модули' + 'MsgSelectAvaile' = 'Доступно' + 'MsgWinHeadError' = 'ОШИБКА!' + 'MsgErrCreoParam' = 'Не найден Creo Parametric или его компоненты на этом компьютере' + 'MsgRunCreoParam' = 'Запуск Creo Parametric' + 'MsgRunPTCStatus' = 'Отобразить все лицензии' } @@ -464,13 +464,13 @@ class CreoLaunching : UserInterface { [HashtableMods[]] hidden LicenseUserRestrict([System.String]$user){ <# - # . - # HashtableMods. - # : - # [0] - - (): = - # [1] - - (): = - # [2] - - (): = @ - # [3] - - (): = + # Метод является заглушкой и использует глобальные переменные. + # Реализация настоящего запроса списка ограничений пользователя должна возвращать массив объектов HashtableMods. + # Где элементы массива: + # [0] - таблица дополнительных модулей в виде хеш-таблицы (словаря): Код = Наименование + # [1] - таблица базовых модулей в виде хеш-таблицы (словаря): Код = Наименование + # [2] - таблица серверов лицензий в виде хеш-таблицы (словаря): Псевдоним = Порт@Адрес + # [3] - таблица ссылок на описание дополнительных модулей в виде хеш-таблицы (словаря): Наименование = Ссылка #> [HashtableMods[]] $restrict = $Global:tableLicenseName, $Global:tableLicenseBase, $Global:tableLicenseServ, $Global:tableLicenseLink Return $restrict @@ -505,7 +505,7 @@ class CreoLaunching : UserInterface { Return $licAvailable } - [System.Void] hidden ExamCheckboxesState($element, $event){ + [System.Void] hidden ExamCheckboxesState($element, $events){ $servKey = $element.Name.Split(':')[0] $licBase = $this.licenseRestricts[1].ToString($true, '|') Foreach ($checkbox in $this.form.Controls | Where-Object {$_.GetType() -match 'System.Windows.Forms.CheckBox'}){ @@ -550,7 +550,7 @@ class CreoLaunching : UserInterface { Set-Content -Path $this.creo.CreoPsf -Value $startFileData -Force Start-Process -FilePath $this.creo.CreoExe -WorkingDirectory $this.creo.CreoLnk $this.form.Close() - Sleep 60 + Start-Sleep 60 Set-Content -Path $this.creo.CreoPsf -Value $startFileBack -Force }