L'incontournable ShellExecute [Résolu]

Messages postés
220
Date d'inscription
jeudi 30 mars 2006
Dernière intervention
26 octobre 2007
- - Dernière réponse : lex1111
Messages postés
220
Date d'inscription
jeudi 30 mars 2006
Dernière intervention
26 octobre 2007
- 19 nov. 2006 à 12:14
salut a tous, je suis en vb 2005 depuis 2 jours et j'essaye de retranscrire mon prog qui est en vb6 mais j'ai un problème avec le shellexecute....
(j'ai cherché assez longtemps sur vbfrance et je n'ai pas trouver de solution...)
sur vb6, j'avais ce code qui fonctionnait...

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

pour ouvrir un site...
val = ShellExecute(0&, vbNullString, "http://www.google.fr", vbNullString, vbNullString, vbNormalFocus)


pour ouvrir un film...
val = ShellExecute(Me.hWnd, vbNullString, fichier, "C:", vbNormalFocus)

Mais maintenant aucune des 2 méthodes ne fonctionne...et j'ai l'impression que cela vient de la variable handle (hwnd)
mais je ne sais pas comment faire pour trouver le hwnd

Message d'erreure :
L'Assistant Débogage managé 'PInvokeStackImbalance' a détecté un problème dans 'D:\programmation\SOURCES MOI\HDDIVX\HD_DIVX v3.0 vb.net\HD-Divx\bin\Debug\HD-Divx.vshost.exe'.
Informations supplémentaires : Un appel à la fonction PInvoke 'HD-Divx!HD_Divx.general::ShellExecute' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

merci d'avance pour vos réponse
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
3
Merci
Salut,

Tu oublie shellexecute. En dotnet, on utilise un process :



'Pour ouvrir un site...

System.Diagnostics.Process.Start("http://www.google.fr")

'Pour ouvrir un film...
System.Diagnostics.Process.Start(fichier),

----

(Coloration syntaxique automatique par Kenji)





__________________

Kenji

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
3
Merci
Entierement d'accord avec Kenji

Sinon le problème vient de la déclaration du type de variable.
En .Net les type de variable ont changé, ainsi un Long (VB6, api) devient un Integer (.Net) ou si tu préfère un Int32.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_casy
Messages postés
220
Date d'inscription
jeudi 30 mars 2006
Dernière intervention
26 octobre 2007
0
Merci
Merci de cette réponse aussi rapide, et c'est bien plus simple ainsi ;D
Commenter la réponse de lex1111

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.