Question
Changement de fenêtre
- crouzille
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 34
- Remerciements reçus 0
il y a 15 ans 7 mois #7526
par crouzille
Changement de fenêtre a été créé par crouzille
Bonjour à tous.
Je vous expose mon problème: quand l'utilisateur lance mon programme powershell une fenetre apparait avec des informations à saisir. Une fois remplis, l'utilisateur clique sur le bouton \"commencer\" ce qui devrait fermer la fenetre et en ouvrir une autre mais cette dernière ne se ferme pas et ouvre bien l'autre.
Voila un extrait de mon code :
[code:1]
<#
Extraction Call_log
Dans ce script nous commençons à extraire les information saisie par l'utilisateur (celle-ci ayant préalablement vériafié dans le 1er script)
#>
# ====================
# Check variable
# ====================
<#
Nous avons:
-$heure_début //Heure du début de la plage horaire
-$heure_fin //Heure de fin de la plage horaire
-$date_reference // date inscrit sur le nom du call_log
-$chemin //chemin de destination où déposer les répertoires
-$date_login //date pour le script CMS
#>
#Extraction call_log correspondant
get-childitem E:\Programmes_extractions_V3 *.csv | where-object {$_.basename -eq \"calls_log.$date_reference*\"} | copy-item -destination E:\Programmes_extractions_V3\Test\Call_log.csv
#Gestion call_log de la semaine en cours
if (Get-ChildItem E:\Programmes_extractions_V3\Test\Call_log.csv)
{
}
else
{
if ((Show-MessageBox \"La demande concerne t'elle la semaine en cours?\" \"Information\" \"Question\" \"YesNo\"«») -eq \"YES\"«»)
{
copy-item E:\Programmes_extractions_V3\Call_log.csv -destination E:\Programmes_extractions_V3\Test\Call_log.csv
}
elseif ((Show-MessageBox \"Le programme ne peut récuprérer le call_log.Le programme doit fermer\" \"Information\" \"Information\" \"OK\"«») -eq \"OK\"«»)
{
$fenetre_1.Close()
}
}
$progressBar1.value = 25
#On Inclut la date souhaitée dans le script générant le login-logout
(Get-Content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto) | foreach-object {$_ -replace \"date_login\", \"$date_login\"} | set-content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto
#On extrait le login-logout via un script automatisé.
start extraction_login.acsauto
#On remet le script dans son état intial afin qu'il soit de nouveau possible de remplacer les valeurs de dates
(Get-Content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto) | foreach-object {$_ -replace \"$date_login\", \"date_login\"} | set-content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto
$progressBar1.value = 100
$fenetre_1.Close()
Extraction_2.ps1./extraction_2 correspond a l'autre fenetre génerée
[/code:1]
J'espère avoir été assez clair dans mes propos
Merci d'avance pour votre aide
<br><br>Message édité par: noir28, à: 3/08/10 10:13
Je vous expose mon problème: quand l'utilisateur lance mon programme powershell une fenetre apparait avec des informations à saisir. Une fois remplis, l'utilisateur clique sur le bouton \"commencer\" ce qui devrait fermer la fenetre et en ouvrir une autre mais cette dernière ne se ferme pas et ouvre bien l'autre.
Voila un extrait de mon code :
[code:1]
<#
Extraction Call_log
Dans ce script nous commençons à extraire les information saisie par l'utilisateur (celle-ci ayant préalablement vériafié dans le 1er script)
#>
# ====================
# Check variable
# ====================
<#
Nous avons:
-$heure_début //Heure du début de la plage horaire
-$heure_fin //Heure de fin de la plage horaire
-$date_reference // date inscrit sur le nom du call_log
-$chemin //chemin de destination où déposer les répertoires
-$date_login //date pour le script CMS
#>
#Extraction call_log correspondant
get-childitem E:\Programmes_extractions_V3 *.csv | where-object {$_.basename -eq \"calls_log.$date_reference*\"} | copy-item -destination E:\Programmes_extractions_V3\Test\Call_log.csv
#Gestion call_log de la semaine en cours
if (Get-ChildItem E:\Programmes_extractions_V3\Test\Call_log.csv)
{
}
else
{
if ((Show-MessageBox \"La demande concerne t'elle la semaine en cours?\" \"Information\" \"Question\" \"YesNo\"«») -eq \"YES\"«»)
{
copy-item E:\Programmes_extractions_V3\Call_log.csv -destination E:\Programmes_extractions_V3\Test\Call_log.csv
}
elseif ((Show-MessageBox \"Le programme ne peut récuprérer le call_log.Le programme doit fermer\" \"Information\" \"Information\" \"OK\"«») -eq \"OK\"«»)
{
$fenetre_1.Close()
}
}
$progressBar1.value = 25
#On Inclut la date souhaitée dans le script générant le login-logout
(Get-Content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto) | foreach-object {$_ -replace \"date_login\", \"$date_login\"} | set-content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto
#On extrait le login-logout via un script automatisé.
start extraction_login.acsauto
#On remet le script dans son état intial afin qu'il soit de nouveau possible de remplacer les valeurs de dates
(Get-Content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto) | foreach-object {$_ -replace \"$date_login\", \"date_login\"} | set-content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto
$progressBar1.value = 100
$fenetre_1.Close()
Extraction_2.ps1./extraction_2 correspond a l'autre fenetre génerée
[/code:1]
J'espère avoir été assez clair dans mes propos
Merci d'avance pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 7 mois #7533
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Changement de fenêtre
Salut,
noir28 écrit:
noir28 écrit:
noir28 écrit:
noir28 écrit:
Par quelle instruction affiches-tu la fenêtre?Une fois remplis, l'utilisateur clique sur le bouton \"commencer\" ce qui devrait fermer la fenetre
noir28 écrit:
Idemet en ouvrir une autre
noir28 écrit:
As-tu codé une imbrication d'appel ou un enchaînement d'appel ?mais cette dernière ne se ferme pas et ouvre bien l'autre.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 7 mois #7540
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Changement de fenêtre
Bonjour,
Ton code n'est pas du tout lisible et je n'arrive pas à voir quand la deuxième fenêtre est créé ?
Utilises tu la méthode ShowDialog à partir de la fenêtre mère ?
Bien Cordialement,
Richard Lazaro.
Ton code n'est pas du tout lisible et je n'arrive pas à voir quand la deuxième fenêtre est créé ?
Utilises tu la méthode ShowDialog à partir de la fenêtre mère ?
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- crouzille
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 34
- Remerciements reçus 0
il y a 15 ans 7 mois #7542
par crouzille
Réponse de crouzille sur le sujet Re:Changement de fenêtre
pour la premiere fenetre :
[code:1]#Save the initial state of the form
$InitialFormWindowState = $Fenetre_1.WindowState
#Init the OnLoad event to correct the initial state of the form
$Fenetre_1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$Fenetre_1.ShowDialog()| Out-Null
[/code:1]
je la ferme ensuite avec fenetre.close() une fois que l'utilisateur à remplis les cases.
et ensuite j'ouvre la deuxieme fenetre en exécutant un autre script reprenant le principe du premier.
Euh désolé laurent j'ai pas compris ta question.<br><br>Message édité par: noir28, à: 4/08/10 09:39
[code:1]#Save the initial state of the form
$InitialFormWindowState = $Fenetre_1.WindowState
#Init the OnLoad event to correct the initial state of the form
$Fenetre_1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$Fenetre_1.ShowDialog()| Out-Null
[/code:1]
je la ferme ensuite avec fenetre.close() une fois que l'utilisateur à remplis les cases.
et ensuite j'ouvre la deuxieme fenetre en exécutant un autre script reprenant le principe du premier.
Euh désolé laurent j'ai pas compris ta question.<br><br>Message édité par: noir28, à: 4/08/10 09:39
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 7 mois #7543
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Changement de fenêtre
noir28 écrit:
[code:1]# Appelé pour déterminer si on ferme ou pas la fenêtre
$Form1.Add_FormClosing({
#Autorise la fermeture
($_).Cancel= $true
})[/code:1]
Ici on annule la demande de fermeture, l'appel à form.close() est donc inopérant.
noir28 écrit:
[code:1]
$Frm1.ShowDialog()
#via l'ihm
$Frm2.ShowDialog()
$Frm2.Close(); $Frm2.Dispose()
$Frm1.Close(); $Frm1.Dispose()[/code:1]
C'est correcte, vérifie si tu n'as pas codé l'event Closing sur la première fenêtre :et ensuite j'ouvre la deuxieme fenetre en exécutant un autre script reprenant le principe du premier.
[code:1]# Appelé pour déterminer si on ferme ou pas la fenêtre
$Form1.Add_FormClosing({
#Autorise la fermeture
($_).Cancel= $true
})[/code:1]
Ici on annule la demande de fermeture, l'appel à form.close() est donc inopérant.
noir28 écrit:
Dans ton cas tu procèdes à un enchaînement, l'imbrication se fait ainsi :Euh désolé laurent j'ai pas compris ta question
[code:1]
$Frm1.ShowDialog()
#via l'ihm
$Frm2.ShowDialog()
$Frm2.Close(); $Frm2.Dispose()
$Frm1.Close(); $Frm1.Dispose()[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.044 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Changement de fenêtre