Я бы не рекомендовал разрешать пользователю вводить свои собственные данные и отправлять их прямо в активный каталог. Конечно, это будет зависеть от того, какую информацию вы запрашиваете у пользователя, и от количества полной свободы, которую вы хотите им предоставить при создании формы.
Я бы порекомендовал использовать WPF. В настоящее время я использую Visual Studios для разработки графического интерфейса пользователя (возможность видеть форму без запуска сценария powershell - это здорово, а мгновенное прерывание при ошибках позволяет мне быстро находить проблемы). Затем вы можете скопировать код XML в скрипт powershell и манипулировать / читать поля оттуда.
В качестве быстрого примера графического интерфейса в PowerShell (работа не гарантируется)
[xml]$form = @"
<Window
Title="MainWindow" Height="900" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Name="Button" Grid.Column="0">Test</Button>
</Grid>
</Window>
"@
$XMLreader = New-object System.Xml.XmlNodeReader $Form
$XMLForm = [Windows.Markup.XamlReader]::load($XMLreader)
$button= $XMLForm.FindName("Button")
$Button.add_Click({...code to execute on click...})
$XMLForm.ShowDialog()
Все, что в переменной $Form
, скопировано из проекта Visual Studio WPF. Затем вы можете назначить сценарии и код, которые будут выполняться при выполнении определенных действий, как показано в $Button.add_Click({})
. В противном случае вы также можете использовать некоторые старые добрые Windows Forms для создания простого графического интерфейса, но у меня нет Я использовал это некоторое время, поэтому у меня нет примера кода.
Я предложил решение, хотя я получаю подлое подозрение, что у кого-то, кто знает больше о закрытиях JS, могло бы быть несколько указателей для меня.
nextAnim($('.alert'));
function nextAnim($alerts) {
$alerts
.eq(0) // get the first element
.show("slow",
function() {
nextAnim($alerts.slice(1)); // slice off the first element
}
)
;
}
Достаточно легко настроить:
// Hide all alert DIVs, then show them one at a time
$(function()
{
var alerts = $(".alert").hide();
var currentAlert = 0;
function nextAlert()
{
alerts.eq(currentAlert).slideDown('fast', nextAlert);
++currentAlert;
}
nextAlert();
});
Вы могли, вероятно, сделать простой сменный метод из этого, если это - что-то, что Вы будете использовать много.