使用 powershell 禁用 Installshield 的下一步按钮
Disabling Installshield's Next button with powershell
我有一个使用 powershell 自定义操作的 Installshield 项目。
在我的一个对话框中,我要求用户输入用户名和密码,然后我验证凭据(使用 powershell)并且我只想在凭据正确时启用 Next
按钮。
这可以用powershell action item实现吗?我使用powershell的原因是我根本不知道InstallScript。
到目前为止,这是我的 powershell 脚本:
Function Test-UserCredential {
Param($username, $password)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Machine, $env:computername
$opt = [System.DirectoryServices.AccountManagement.ContextOptions]::SimpleBind
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ct
$Result = $pc.ValidateCredentials($username, $password).ToString()
$Result
}
$comp_username = Get-Property -Name COMPUTER_USERNAME
$comp_password = Get-Property -Name COMPUTER_PASSWORD
$result = Test-UserCredential -username $comp_username -password $comp_password
if ($result)
{
#Enable "Next" button
}
else
{
#Disable "Next" button
}
谢谢。
您必须做三件事。
- 选择一个 属性 来跟踪是否应启用“下一步”按钮,并从您的 PowerShell 中进行设置。通常您会将其设置为“1”或“”(空字符串)以方便下一步。
- 在对话框编辑器中创建控制条件,启用和禁用引用 属性 作为您的条件的下一步按钮。
- powershell动作完成后单独触发UI更新。不幸的是,UI 在所有 属性 更改后不评估控制条件;它仅在 it 更改它认为相关的 属性 之后才这样做。所以最简单的方法是添加一个 Set 属性 控件事件来设置 属性.
请注意,为了清楚地说明第 3 步的相关性,将其拆分为两个单独的属性可能会很有用;在 powershell 中设置一个,在 Set 属性 控制事件中将其反映到另一个中,并具有读取后者的控制条件。
我有一个使用 powershell 自定义操作的 Installshield 项目。
在我的一个对话框中,我要求用户输入用户名和密码,然后我验证凭据(使用 powershell)并且我只想在凭据正确时启用 Next
按钮。
这可以用powershell action item实现吗?我使用powershell的原因是我根本不知道InstallScript。
到目前为止,这是我的 powershell 脚本:
Function Test-UserCredential {
Param($username, $password)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Machine, $env:computername
$opt = [System.DirectoryServices.AccountManagement.ContextOptions]::SimpleBind
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ct
$Result = $pc.ValidateCredentials($username, $password).ToString()
$Result
}
$comp_username = Get-Property -Name COMPUTER_USERNAME
$comp_password = Get-Property -Name COMPUTER_PASSWORD
$result = Test-UserCredential -username $comp_username -password $comp_password
if ($result)
{
#Enable "Next" button
}
else
{
#Disable "Next" button
}
谢谢。
您必须做三件事。
- 选择一个 属性 来跟踪是否应启用“下一步”按钮,并从您的 PowerShell 中进行设置。通常您会将其设置为“1”或“”(空字符串)以方便下一步。
- 在对话框编辑器中创建控制条件,启用和禁用引用 属性 作为您的条件的下一步按钮。
- powershell动作完成后单独触发UI更新。不幸的是,UI 在所有 属性 更改后不评估控制条件;它仅在 it 更改它认为相关的 属性 之后才这样做。所以最简单的方法是添加一个 Set 属性 控件事件来设置 属性.
请注意,为了清楚地说明第 3 步的相关性,将其拆分为两个单独的属性可能会很有用;在 powershell 中设置一个,在 Set 属性 控制事件中将其反映到另一个中,并具有读取后者的控制条件。