Relance application [Résolu]

Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 27 mars 2015 à 20:58 - Dernière réponse :
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 28 mars 2015 à 06:54
Bonsoir le Forum,

Toujours dans ma translation d'une appli hta-vbs en vb.net.

Je souhaiterai créer un bouton qui relance l'application.

Explication:
Lors du load de l'appli, certains boutons vont être mis en disabled si fichiers inexistants.
Je demande donc, via Me.ErrorProvider1.SetError, à l'utilisateur de créér ces fichiers, puis de relancer l'appli avec le bouton "Relaunch".

En hta-vbs, j'utilisais :
Sub ButtonRelaunchApp_OnClick()
' Relance script HTA
Location.Reload(True)
End Sub


Je ne trouve pas l'équivalent en .Net.

Merci de vos suggestions,
jean-marc
Afficher la suite 

Votre réponse

9 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 27 mars 2015 à 21:23
0
Merci
Je ne comprends pas vraiment l'intérêt de tout relancer, Jean-Marc .
Tu nous dis que :
-
Lors du load de l'appli, certains boutons vont être mis en disabled si fichiers inexistants

et que :
-
Je demande donc, via Me.ErrorProvider1.SetError, à l'utilisateur de créér ces fichiers, puis de relancer l'appli avec le bouton "Relaunch".

Ce qui donne à supposer que tu souhaites que la procédure qui inhibe ou autorise ces boutons soit relancée.
Pourquoi ne pas alors la relancer, sans même quitter ton application ?
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- Modifié par ucfoutu le 27/03/2015 à 21:42
0
Merci
Ton souci est peut-être que tu veux éviter de créer à nouveau des boutons déjà créés dynamiquement ?
Quà cela ne tienne : ===>>
Une variable boléenne générale DEJA que tu mets à True lors de leur création.
Ensuite :
1) si DEJA ===>> tu ne crées pas à nouveau
2) Que DEJA soit True ou false ===>> tu décides d'inhiber ou non (toujours vrai, que ce soit lors de la première exécution ou lors d'exécutions suivantes).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 27 mars 2015 à 21:54
Désolé, post raté !!!
Dans le post de 21:44, il faut comprendre :

Ce que je souhaite pas, est que lambda :
- ferme pas l'appli avec le bouton Quit;
- lance, via un automate, le script de création de fichiers;
- se reconnecte et relance l'application via raccourci deskop.

Ce que je souhaite, est que lamba:
- suite au message "Me.ErrorProvider1.SetError" ne ferme pas l'appli;
- lance un script sur un serveur;
- fait un refresh de l'appli via le bouton "relance".


jean-marc
Commenter la réponse de ucfoutu
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 27 mars 2015 à 21:44
0
Merci
Bonsoir Jacques,

Pourquoi ne pas alors la relancer, sans même quitter ton application ?

Je ne souhaite pas que lambda ferme l'application, lance via un automate un script qui va créer et déposer sur le serveur les fichiers manquants, puis relance l'application.

Mes tests en .Net:
- rename fichier "toto" en "test_toto";
- lancement de l'appli;
- Tooltip "fichier manquant ... lancer le script tata puis faire relance de l'appli".
- j'ai renommé mon fichier "test_toto" en "toto";
- dans l'appli avec un bouton .restart(), l'appli ne s'est réinitialisée et le fichier "toto" pourtant présent a provoqué l'erreur "fichier inexistant".

En vbs, je n'avais pas ce problème.

Mon souhait est que lambda :
- ne ferme pas l'appli avec le bouton Quit;
- lance, via un automate, le script de création de fichiers;
- se reconnecte et relance l'application via raccourci deskop.

En vbs, le "Location.Reload(True)" permettait de réiinitialiser les variables et relancer l'appli donc en re-vérifiant toutes les variables.

jean-marc
Commenter la réponse de cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 27 mars 2015 à 22:11
0
Merci
Jacques,

Mon souci des boutons est résolu (Le Pivert et ucfoutu)

Exemple de l'une des fonctions de création de boutons.

Private Sub CreateButtonsSaveClient()
' Création du Label et des boutons pour la génération des Consignes par client
Dim ToolTip1 As New ToolTip(components)
Dim MyLabel2 As New Label()
Dim pair As KeyValuePair(Of String, String)
Dim count As Integer = 0
Dim intPos As Integer = 110

MyLabel2.Location = New Point(245, 80)
MyLabel2.Text = "Consignes Client [Toutes]"
MyLabel2.AutoSize = True
Me.Controls.Add(MyLabel2)

For Each pair In Customers
count = 0
If pair.Key <> "SAVEMUTU" Then

If FileExists(PathTeam & pair.Key & PathPDP & FilePDP & FileTypeExcel) = True Then
Try
cn.ConnectionString = ConnectingExcel(PathTeam & pair.Key & PathPDP & FilePDP & FileTypeExcel)

Dim MyQuery As String = " SELECT Job FROM [Jobs$] WHERE [Job] IS NOT NULL"
cn.Open()
da = New OleDb.OleDbDataAdapter(MyQuery, cn)
da.Fill(ds, "Job")
count = ds.Tables(0).Rows.Count.ToString
da.Dispose()
ds.Clear()
cn.Close()
Catch ex As Exception
MessageBox.Show(PathTeam & pair.Key & PathPDP & FilePDP & FileTypeExcel & _
vbCrLf & vbCrLf & ex.Message, "CreateButtonsSaveClient")
cn.Close()
Finally
End Try
End If

' Création dynamique des boutons sur Form1
Dim MyButton As New Button()
MyButton.Location = New Point(245, intPos)
MyButton.Height = 40
MyButton.Width = 150
MyButton.Text = pair.Key & " ( " & count & " )"
MyButton.Name = MyLabel2.Text
MyButton.Tag = pair.Value
MyButton.BackColor = Color.Aquamarine
MyButton.TextAlign = ContentAlignment.MiddleLeft
intPos = intPos + 42

' Si le fichier est vide, le bouton est désactivé
If count = 0 Then
MyButton.Enabled = False
Me.ErrorProvider1.SetError(MyButton, "Pour générer les consignes du client " & pair.Key & _
" ,vous devez d'abord générer le Plan de Production du client car fichier absent")
ElseIf FileExists(PathTeam & pair.Key & PathPDP & FileInfo & FileTypeExcel) = False Then
MyButton.Enabled = False
Me.ErrorProvider1.SetError(MyButton, "Le fichier " & """" & FileInfo & FileTypeExcel & """" & _
"de " & pair.Key & " n'existe pas, vous ne pouvez pas générer les consignes. effectuer le MOP xxxx pour créer le fichier manquant")
End If

Me.Controls.Add(MyButton)
AddHandler MyButton.Click, AddressOf MyButton_Click
End If
Next
End Sub
Commenter la réponse de cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 27 mars 2015 à 22:38
0
Merci
Ci-dessous le lancement de l'appli :
    ' Lancement de Form1
Public Shared Sub Main()
Application.Run(New Form1())
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(50, 10)
' Declenchement du Timer pour affichage Date & Heure
Timer1.Interval = 1000 'Timer1_Tick sera déclenché toutes les secondes.
Timer1.Start()

If FileExists(PathTeam & PathConfig & FileConfig) = True Then
' Ajout dynamique des boutons sur Form1
CreateButtonsPDP()
CreateButtonsSaveClient()
CreateButtonsSaveClientDelta()
CreateButtonsSaveMutu()
Else
MessageBox.Show("Le fichier " & """" & PathTeam & PathConfig & FileConfig & """" & " n'existe pas !!!")
Application.Exit()
End If
End Sub

jean-marc
Commenter la réponse de cs_JMO
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 28 mars 2015 à 06:19
0
Merci
En vbs, le "Location.Reload(True)" permettait de réiinitialiser les variables et relancer l'appli donc en re-vérifiant toutes les variables

Et où est placé ce "bouton de relancement" ? Si dans l'appli de départ, le principe que je t'ai exposé le permet sans problème.
Commenter la réponse de ucfoutu
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 28 mars 2015 à 06:48
0
Merci
Bonjour Jacques,

Sur le Form1, j'ai :
- 1 bouton "btnRelaunch_Click"
- 1 bouton "btnExit_Click" (Me.Close)
- 1 label (affiche date & heure avec un Timer1_Tick)
- 1 timer
- 1 errorProvider

Les labels et boutons sont créés dynamiquement, dans Form1, après lecture de plusieurs fichiers.

Je souhaiterai que clic sur bouton "btnRelaunch_Click" me relance Form1 et me recréé donc les labels et boutons dynamiques.

Je ne trouve pas sur le net cette syntaxe de relance de Form1.

jean-marc
Commenter la réponse de cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 28 mars 2015 à 06:54
0
Merci
syntaxe trouvée : System.Windows.Forms.Application.Restart()

Merci Jacques de ton aide et bonne journée.

@+
jean-marc
Commenter la réponse de cs_JMO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.