Question afficher popup et continuer script directement

Plus d'informations
il y a 13 ans 1 mois #14016 par Laurent Dardenne
JayG écrit:

Pour fermer la fenêtre ça n'a pas l'air si simple (même en utilisant un -Force)

PS n'est pas fait pour ça, qu'on se le dise.
JayG écrit:

même si le code est ma foi assez complexe

Il ne s'agit que d'affection et de la config d'event.
Ce qu'on ne connait pas, parait souvent 'complexe', au début.

Voici du code qu'on peut commencer à classer dans la catégorie 'complexe' :
[code:1]
function AddMethodPSDispose{
param ($ZipInstance)

$Logger.Debug(\"Add PSDispose method on $($ZipInstance.Name)\"«») #<%REMOVE%>
Add-Member -Inputobject $ZipInstance -Force ScriptMethod PSDispose{
if (($this.StatusMessageTextWriter -ne $null) -and ($this.StatusMessageTextWriter -is [PSIonicTools.PSVerboseTextWriter]))
{
#On libère que ce que l'on crée
Write-Debug(\"`t ZipFile Dispose PSStream\"«») #<%REMOVE%>
$this.StatusMessageTextWriter.Dispose()
$this.StatusMessageTextWriter=$null
}
#Récupère le type de l'instance
$MyType=$this.GetType()
#Récupère l'événement ZipError
$Event=$MyType.GetEvent('ZipError')
#Un event à un délégué privé
$bindingFlags = [Reflection.BindingFlags]\"GetField,NonPublic,Instance\"
#On récupère la valeur du délégué privé
$EventField = $MyType.GetField('ZipError',$bindingFlags)
$ZipErrorDeleguate=$EventField.GetValue($this)
if ($ZipErrorDeleguate -ne $null)
{
Write-Debug(\"`t Dispose delegates\"«») #<%REMOVE%>
#Récupère la liste des 'méthodes' à appeler
# Au moins un, peut être de notre type : $_.Target -is [PSIonicTools.PSZipError]
$ZipErrorDeleguate.GetInvocationList()|
Foreach {
Write-Debug(\"`t Dispose $_\"«») #<%REMOVE%>
#On supprime tous les abonnements
$Event.RemoveEventHandler($this,$_)
}
}
#On appelle la méthode Dispose() de l'instance en cours
$this.Dispose()
}
} #AddMethodPSDispose
[/code:1]
Et encore, c'est plus facile à lire qu'a écrire :P
Mais surtout, ce qu'on ne connait pas, parait souvent 'complexe', au début...<br><br>Message édité par: Laurent Dardenne, à: 19/02/13 19:31

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.050 secondes
Propulsé par Kunena