Accueil > Forum > > > > Erreur d'éxécution avec instruction Shellexecute
Erreur d'éxécution avec instruction Shellexecute
dimanche 8 juillet 2012 à 10:00:36 |
Erreur d'éxécution avec instruction Shellexecute

Cjvg
|
Bonjour,
J'ai un Projet "A" qui ne contient que les instructions suivantes:
Private Sub Form_Load()
Call ShellExecuteA(0, "", App.Path & "\Think2Asie1.exe", "", "", 1)
End
End Sub
J'ai un projet B qui affiche une carte de l'Asie et qui permet à l'utilisateur lorsqu'il clique sur un pays d'afficher la carte des villes de ce pays.
Lorsque j'exécute directement, ce projet fonctionne correctement
------------------------------------------------------------------------------------------
Lorsque le projet A lance l'exécution du projet B, la carte de l'Asie s'affiche correctement. Lorsque l'utilisateur clique sur un pays, le programme tombe en erreur:
Erreur exécution 340
L'élément du groupe de contrôles '23' n'existe pas.
Si je place une instruction MSGBOX "***1***" dans la procédure Load d'une Form, cette form s'affiche alors correctement (Toutes les autres tombent en erreur)
Si je place cette instruction MSGBOX dans la procédure principale comme présenté ci-dessous, le programme fonctionne parfaitement.
MsgBox "** 1 **"
If Parm1 = 2 Then Think2Asie1F2.Show vbModal ' Chine Régions .
If Parm1 = 3 Then Think2Asie1F3.Show vbModal ' Chine .
If Parm1 = 4 Then Think2Asie1F4.Show vbModal ' Inde .
If Parm1 = 5 Then Think2Asie1F5.Show vbModal ' Mongolie .
If Parm1 = 6 Then Think2Asie1F6.Show vbModal ' Russie .
If Parm1 = 7 Then Think2Asie1F7.Show vbModal ' Kazakhstan .
If Parm1 = 8 Then Think2Asie1F8.Show vbModal ' Iran .
If Parm1 = 9 Then Think2Asie1F9.Show vbModal ' Arabie Saoudite .
If Parm1 = 10 Then Think2Asie1F10.Show vbModal ' Turkménistan .
If Parm1 = 11 Then Think2Asie1F11.Show vbModal ' Afghanistan .
Etc....................................
Impossible de trouver l'erreur. Comment remplacer ce MSGBOX par une autre instruction ????
Par avance Merci
|
|
dimanche 8 juillet 2012 à 10:27:52 |
Re : Erreur d'éxécution avec instruction Shellexecute

jack
|
Salut
Puisque tu lances un EXE, ShellExecute ne se justifie pas.
Essaye d'utiliser Shell.
Code Visual Basic : Call Shell(App.Path & "\Think2Asie1.exe", vbNormalFocus)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
|
|
dimanche 8 juillet 2012 à 10:53:24 |
Re : Erreur d'éxécution avec instruction Shellexecute

jack
|
Il est fortement déconseillé de mettre un End dans un Form_Load :
Déjà parce que End n'est pas correct (mieux vaut un Unload Me), trop violent.
Ensuite parce que lors du Form_Load, l'affichage de tous les éléments graphiques de ton appli A ne sont pas encore complètement terminé.
Alors oui, ça ne semble pas avoir beaucoup d'importance dans ton cas, mais mieux vaudrait faire comme ceci :
# Tu places un Timer sur ta forme (Timer1)
# En config de ce Timer1, tu mets le Enabled à False et Interval à 200 (mSec)
# Dans le Form_Load, tu démarres le Timer :
Timer1.Enabled = True
# Dans la procédure du Timer (Timer1_Timer()), tu y mets :
- Timer1.Enabled = False, pour que le Timer ne s'exécute qu'une fois
- ta commande Shell
- un DoEvents, histoire que tout ait le temps d'être exécuté avant de sortir
- le Unload Me pour terminer le programme
"Erreur exécution 340
L'élément du groupe de contrôles '23' n'existe pas."
Est-ce que le groupe 23 te dit quelque chose dans ton programme ?
(parce que vu d'ici ...)
Éventuellement, remplace ta MsgBox par un DoEvents.
Est-ce que l'affichage graphique de ton le projet B est terminé au moment où tu cliques sur le pays ?
|
|
dimanche 8 juillet 2012 à 10:59:13 |
Re : Erreur d'éxécution avec instruction Shellexecute

Cjvg
|
J'utilisais call Shell.
Pour trouver l'erreur j'ai réduit le projet "A" à sa plus simple expression et j'ai fais un essais avec shellexecute.
J'ai refais un nouvel essais en emplaçant le Msgbox par une similation d'entrée clavier
(Enter) ---> Keybd 13, 0, 0, 0 --> ça marche
C'est mieux que le Msgbox mais j'aimerais bien trouver l'erreur.
|
|
dimanche 8 juillet 2012 à 11:04:48 |
Re : Erreur d'éxécution avec instruction Shellexecute

Cjvg
|
Éventuellement, remplace ta MsgBox par un DoEvents.
J'avais essayé ---> ça ne marche pas !
|
|
dimanche 8 juillet 2012 à 11:36:17 |
Re : Erreur d'éxécution avec instruction Shellexecute

Cjvg
|
J'ai refais un nouvel essais en remplaçant le Msgbox par une simulation d'entrée clavier
(Enter) ---> Keybd 13, 0, 0, 0 --> ça marche
Je me suis trompé, ça ne marche pas
-----------------------------------------------------------------------------------------
J'ai refais un autre essais qui semble marcher
Keybd 13, 0, 0, 0 ' Pour neutraliser l'affichage du Msgbox
MsgBox " "
|
|
Cette discussion est classée dans : show, vbmodal, if, parm1, then
Répondre à ce message
Sujets en rapport avec ce message
Problème de boucle If [ par Ledaf ]
Bonjour je suis en train de fair la boucle suivante:If Selection = "" Then ElseIf Selection "" Then Selection.CopyEnd IfEt aprè
Textbox sur VB6 [ par mazert ]
Bonjour, Je voudrai modifier/améliorer le code ci dessous (qui permet de changer de texxte à chaque fois que je clique sur un boutn).Static a As Integ
VBA Graphe [ par piekehle ]
Bonjour, Je suis sous powerpoint 2000. N'importe quel maniere de faire mon graphe a partir des valeurs A,B,C,D m'interesse. Ce que j'ai essayer c'es
if ? and ? then [ par argentin7 ]
bonjour communauté VBfrancej'ai trouvé dans un certain code une condition if que je n'ai pas compriseif Murs and MURB thenavec Murs un integerMURB
probleme transfert de valeur d'1 textbox d'un formulaire a un autre en application mdi [ par mitnickKevin ]
Bonjour,J'ai un petit soucis concernant un formulaire qui doit afficher une liste de client qui on le meme nom.L'utilisateur saisie le nom du client d
check1 [ par webanis ]
salut j'ai un probleme de check1 je utilise cette code mais ne fonctionne pas "losque en ecute l'application , le check1 prend par defaut le 1 mais
If App.PrevInstance = True Then [ par kelm_by ]
salut tous le monde,comment est ce que je peux lancer une form d'une application deja active If App.PrevInstance = True ThenEndapplication deja active
Joindre une pièce jointe à un email avec Winsok [ par basamir ]
Bonjour,je viens de recuperer un code de vbfrance qui permet d'envoyer des emails grace à winsok et qui marche avec quelques smtp uniquement, j'ai che
Backspace [ par GBadry ]
Salut les amis, j'ai une zone de texte en VB6. je veux que l'utilisateur lis seulement son contenu. je détecte les codes des touches dans l'évenemen
probleme entre vb6 et access 2007 [ par hugoclo ]
Bonsoir,J'ai telecharger sur le site un zip pour un planning a partie d une dbb.La Base de donnée est au format .mdb Utilisant office 2007 j'ai transf
Livres en rapport
|
Derniers Blogs
CONF'SHAREPOINT : 10 BONNES RAISONS POUR NE PAS LA RATERCONF'SHAREPOINT : 10 BONNES RAISONS POUR NE PAS LA RATER par pierre
Si vous hésitez encore à venir à la conférence, ci-après 10 bonnes raisons pour ne pas rater cet évènement unique : La Conf'SharePoint, c'est la 1ère conférence en France et en Français dédié à SharePoint : pas de barrière de la langue La Conf...
Cliquez pour lire la suite de l'article par pierre [EVENT] SOIRéE DE LANCEMENT AGILE .NET FRANCE à LYON[EVENT] SOIRéE DE LANCEMENT AGILE .NET FRANCE à LYON par thavo
Agile.Net France débarque à Lyon fin juin !! Je viens d'arriver à Lyon, et l'Agile .Net France aussi. Pour ceux/celles qui habitent en Rhône-Alpes, seriez-vous disponible pour une soirée « Agile .Net France » ?? (je sais que certains vi...
Cliquez pour lire la suite de l'article par thavo SHAREPOINT : INCOMPATIBILITé AVEC INTERNET EXPLORER 10 (IE10)SHAREPOINT : INCOMPATIBILITé AVEC INTERNET EXPLORER 10 (IE10) par ROMELARD Fabrice
Depuis plusieurs mois, Microsoft a publié un patch (comme très régulièrement) qui est passé relativement inaperçu à l'époque. L'arrivée de plus en plus de postes sous Windows 8 et surtout le déploiement par Windows Update de ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice AUTOSPINSTALLER POUR SHAREPOINT 2013 MAINTENANT DISPONIBLE EN "RTM"AUTOSPINSTALLER POUR SHAREPOINT 2013 MAINTENANT DISPONIBLE EN "RTM" par neodante
Alors qu'il n'était qu'en Beta et que quelques dysfonctionnements persistaient, la nouvelle version du fabuleux script AutoSPInstaller permettant d'installer SharePoint 2010/2013 en full script (idéal pour répliquer des fermes de dev/qual/prod) est mainte...
Cliquez pour lire la suite de l'article par neodante
Logiciels
Devis-Factures PHMSD (2.1.0.1)DEVIS-FACTURES PHMSD (2.1.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD Ludoprêt (3.2)LUDOPRêT (3.2)Logiciel gratuit de gestion de ludothèque.
Gestion des jeux et des adhérents.
Gestion des for... Cliquez pour télécharger Ludoprêt Revealer Keylogger Free (2.05)REVEALER KEYLOGGER FREE (2.05)Keylogger invisible et gratuit pour Windows 8, 7, Vista ou XP. Revealer Keylogger Free vous perme... Cliquez pour télécharger Revealer Keylogger Free 974 Application Server (13.2.1.3)974 APPLICATION SERVER (13.2.1.3)Ecommerce, Blogueur, Vitrine, Newsletter, Java IDE, ..., in the cloud et sous haute dispo. Facile... Cliquez pour télécharger 974 Application Server WDmemoCode (1.0.0)WDMEMOCODE (1.0.0)WDmemoCode a été créé pour aider les développeurs Windev à créer/compléter et conserver une base ... Cliquez pour télécharger WDmemoCode
|