Comment créer un menu dans VB6 en loadant l'executable, les valeur prise d'une B [Résolu]

AngeliusMefyrx 52 Messages postés lundi 20 mars 2006Date d'inscription 14 octobre 2007 Dernière intervention - 14 mars 2007 à 18:32 - Dernière réponse : AngeliusMefyrx 52 Messages postés lundi 20 mars 2006Date d'inscription 14 octobre 2007 Dernière intervention
- 16 mars 2007 à 17:29
Dans visual basic, lorsque l'on crée des menu, on passe par l'option en haut dans le programme et on les fait un par un.

Ce que j'aimerais faire, c'est que lorsque, j'ouvre mon programme, l'exécutable compiler, ça accède une base de donnée, puis à l'aide des informations de cette base de données, ça rajoute un menu dans le haut à coté de Fichier, Affichage etc...

En gros, mon problème, c'est comment je fais pour créer un menu en ouvrant l'exécutable.

Je ne peux donc créer des menu préfait

En fais mon utilisation est simple, ca me sert de favoris pour lancer IE ou d'autres programmes.
Cette table dans la base de données contient alors 3 clefs.
1- Le Titre
2- La commande à exécuter
3- Une phrase afin d'identifier les groupes

Donc ca génèrerait un premier menu "Favoris"
À l'intérieur, ca afficherait un sous menu qui contiendrais chaque phrase au point 3
À l'intérieure de chaque sous menu, il y aurait un sous menu contenant le titre au point 1 qui exécuterait la commande au point 2.

------------------------------------------------------------------------------------------------

La programmation, je la fais pour le fun comme ça, malgré mon diplôme en programmation, je ne compte pas en faire carrière ou lire des bouquins là dessus.  Ce que j'ai besoin je le trouve sur internet et ça ma tout de même permis de créer un programme pour mon travail.  Ce programme contrôle une fenêtre internet explorer qui nous sert à passer des commandes sur n'importe lequel des différent 2000 serveurs ou 25000 postes du réseau.




Le programme utilise une base de données Access, qui classe des commandes déjà pré fait avec exemple et info etc... et en double cliquant sur la commande, ca copie la commande dans IE et lance IE avec les valeurs appropriés.

Par la suite, le programme prend le résultat d'IE et l'affiche, assez simple comme utilisation.
Évidement, en passant la commande, ca demande les infos nécessaires dépendamment de celle ci.
Je voulais rajouter dans le haut, un menu favori, qui permet de lancer des applications sur le poste.
Présentement, je la fait afficher dans un listbox avec séparation d'astérix entre chaque classe d'application.


J'utilise alors VB6 et Access que je connais bien et auquel j'ai une facilité à programmer afin d'atteindre mon but.
Afficher la suite 

8 réponses

Répondre au sujet
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 14 mars 2007 à 18:49
+3
Utile
Bonsoir,
Je te suggère de regarder là (le 1er commentaire, surtout).
http://www.vbfrance.com/codes/AJOUT-SOUS-MENU-DYNAMIQUEMENT_156.aspx
Ceci étant dit, j'ai l'intime conviction (mais peux me tromper) que tu cherches à te compliquer la vie (enfin... si j'ai bien deviné...)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 14 mars 2007 à 19:19
0
Utile
Et si tu créais un menu "Favoris" à la création, mais Visible = False
À ce menu, tu crées autant de sous-menus que l'application aurait besoin.

Au démarrage de l'application, tu exécutes ton Recordset et tu rends visibles seulement les sous-menus nécessaires... Une idée comme ça...

MPi
Commenter la réponse de cs_MPi
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 14 mars 2007 à 19:37
0
Utile
Celà va plus loin encore !
Si j'ai bien deviné (il exploite un titre,et "une commande à exécuter")


1) Le titre semble devoir être utilisé comme texte de l'ongler de menu
or le caption d'un élément de menu est parfaitement modifiable dynamiquement !
2) la "commande à exécuter" me parait plutôt être une chaône de caractères à passer à une commande, pas une commande "en soi"
et il suffirait alors de mettre ce texte dans une variable et de passer cette variable


etc...

J'au donc tout simplement l'impression de ce que l'in a toujours les mêmes éléments, dont seuls les captions changent (voir plus haut) et dont les instructions utilisent toujours ce qui peut être remplacé pat une variable string
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 14 mars 2007 à 21:00
0
Utile
Je voudrais ajouter ici une chose que j'ai envie de dire depuis longtemps.
Il y a de très sérieuses raisons pour ne jamais utiliser les menus de VB et de leur préférer autre chose.
Je sais que je vais en faire hurler plus d'un et fais donc cette déclaration en parfaite connaissance de cause (on en reparlera et on verra bien)
Angelius : si vraiment tu veux pouvoir éviter quelques ennuis de dernière minute (notamment lorsque tu dustribueras ton application) : fais comme moi : crée donc tes propres menus cinstitués de contrôles dans une picturebox. Laisse tomber ce que t'offre VB dans ce domaine car c'est un cadeau empoisonné.

Bien qu'ici (ton problème actuel) tu pourrais à mon avis t'en sortir sans création dynamique de menus et sous-menus... :
1) Tu remarqueras qu'il te serait possible de créer très facilement, de façon dynamique, des contrôles dans une PictureBox
2) Essaye maintenant de redimensionner des menus VB pour correspondre à une résolution de l'écran-client : tu n'y parviendras pas, sauf à modifier les paramètres Windows (ce que ton client n'apréciera surement pas !...).  sauf si; bien évidemment, tu n'utilises qu'une fraction de la place disponible pour l'affichage d'un menu VB (une occupation "complète" te conduirait à la catastrophe assurée en cas de nécessité de redimensionner en résolution inférieure à celle du développement)
L'emploi de contrôles dans une pictureBox te servant de barre de menu, par contre, te permettrait ce redimensionnement de manière relativement facile.

J'ajoute ici que la raison qui pourrait m'être opposée, à savoir le fait d'utiliser une MDI comme porteuse de menu, ne tient pas debout. Il est également possible d'utiliser une picturebox "porteuse" dans une MDIForm et la forme fille sera également confinée (comme avec un menu VB) dans la partie restant disponible de la MDIForm.

Voilà ! J'ai dit ... tu fais maintenant comme tu l'entends, bien évidemment...mais je retiens que je te l'aurai dit.
Commenter la réponse de jmfmarques
AngeliusMefyrx 52 Messages postés lundi 20 mars 2006Date d'inscription 14 octobre 2007 Dernière intervention - 14 mars 2007 à 22:37
0
Utile
En fait le code est simple
Mettons que je load les valeur dans la liste box, voici la commande:

Public Sub Lance()
Dim LanceApp As String
Dim go As Object
On Error GoTo ErreurLance
LanceApp = Lst_Application.List(Lst_Application.ListIndex, 1)
If LanceApp <> "" Then
    Set go = CreateObject("WScript.Shell")
    go.run LanceApp
End If
Exit Sub


ErreurLance:


Call MsgBox("Erreur critique à l'accès de l'application.", vbCritical, "Erreur au lancement de l'application")
Exit Sub


End Sub

---------------------------------------------------------------------------------

Et la commande dans la base access pourrait alors être

1) iexplore "http://support.lexmark.com/cgi-perl/knowledgebase.cgi?ccs=37:3:0:101:0:0&docid=ENUS8664"

2) "C:\Program Files\Logon\Logon.exe"

Je peux alors lancer pas mal n'improte quelle executable ou appeller un executable avec des paramètre comme internet explorer
Commenter la réponse de AngeliusMefyrx
bricoyeye 326 Messages postés vendredi 15 avril 2005Date d'inscription 29 avril 2008 Dernière intervention - 14 mars 2007 à 23:49
0
Utile
Salut,
Tu crés des menus et sous menus sans rien mettre à caption, en lui donnant un nom (name), ensuite suivant ce que tu veux, dans ton code tu fais
Nom_de_ton menu.Caption ="ce_que_tu_veux"
Commenter la réponse de bricoyeye
AngeliusMefyrx 52 Messages postés lundi 20 mars 2006Date d'inscription 14 octobre 2007 Dernière intervention - 15 mars 2007 à 14:49
0
Utile
Merci jmfmarques, c'est exactement ce que je voullais.
En fait, j'ai utiliser les forms et module puis ca fonctionne.
Je vais donc l'adapter pour mon code.
Le premier commentaire, "VB.qeqchose" me génère du code rouge pour dire que visual basic comprends rien.
Commenter la réponse de AngeliusMefyrx
AngeliusMefyrx 52 Messages postés lundi 20 mars 2006Date d'inscription 14 octobre 2007 Dernière intervention - 16 mars 2007 à 17:29
0
Utile
Je vais rajouter un commentaire au liens
http://www.vbfrance.com/codes/AJOUT-SOUS-MENU-DYNAMIQUEMENT_156.aspx

J'ai finalement créer un menu qui applique les commande relier a une base de données access
Commenter la réponse de AngeliusMefyrx

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.