OVH Cloud OVH Cloud

Lien vers le Net

7 réponses
Avatar
Daniel AUBRY
Bonjour à tous,

j'utilise depuis longtemps une procédure qui me permet
d'ouvrir un fichier avec le logiciel qui lui est associé sous
Windows. Cela marche aussi pour les lien Internet.

Exemple :

NomFichier = DossierTemporaire & "Le_Rush_.txt"
LanceExeAssocie (NomFichier)

Mais aujurd'hui je viens de me rendre compte que cela marche
en IDE mais plus en EXE pour les liens Internet

NomFichier = "www.google.fr"
LanceExeAssocie (NomFichier)

Cela me donne le messge "Fichier non trouvé"

A tout hasard je place le code en dessous .............

'Déclarations nécessaires pour LanceExeAssocie
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal hWnd As Long, ByVal lpszOp As String, ByVal lpszFile As String, ByVal
lpszParams As String, ByVal lpszDir As String, ByVal FsShowCmd As Long) As
Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long

Const SW_SHOWNORMAL = 1
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&


Public Sub LanceExeAssocie(NomFichier As String)

Dim lghDC As Long, lgRep As Long
Dim stErreur As String

If NomFichier = "" Then
Exit Sub
End If

lghDC = GetDesktopWindow()
lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:\", SW_SHOWNORMAL)

If lgRep <= 32 Then
'Erreur à afficher en cas d'échec de l'appel
Select Case lgRep
Case SE_ERR_FNF
stErreur = "Fichier non trouvé"
Case SE_ERR_PNF
stErreur = "Chemin non trouvé"
Case SE_ERR_ACCESSDENIED
stErreur = "Accès refusé"
Case SE_ERR_OOM
stErreur = "Pas assez de mémoire"
Case SE_ERR_DLLNOTFOUND
stErreur = "DLL non trouvée"
Case SE_ERR_SHARE
stErreur = "Une violation de partage est apparue"
Case SE_ERR_ASSOCINCOMPLETE
stErreur = "Association incomplète ou invalide"
Case SE_ERR_DDETIMEOUT
stErreur = "DDE Délai dépassé"
Case SE_ERR_DDEFAIL
stErreur = "DDE transaction abortée"
Case SE_ERR_DDEBUSY
stErreur = "DDE occupé"
Case SE_ERR_NOASSOC
stErreur = "Pas d'association enregistrée pour ce type de
fichier"
Case ERROR_BAD_FORMAT
stErreur = "Fichier EXE invalide"
Case Else
stErreur = "Erreur inconnue"
End Select
MsgBox stErreur, vbExclamation, NomEtVersion
End If

End Sub

7 réponses

Avatar
Daniel AUBRY
Suite à la consultation de la FAQ VB j'ai testé ceci :

ShellExecute Me.hwnd, "open", "www.google.fr", vbNullString, vbNullString,
SW_SHOWNORMAL

Cela fonction en IDE pas en EXE !!!!!!!!!!!!!

Pas comprendre.

"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
Bonjour à tous,

j'utilise depuis longtemps une procédure qui me permet
d'ouvrir un fichier avec le logiciel qui lui est associé sous
Windows. Cela marche aussi pour les lien Internet.

Exemple :

NomFichier = DossierTemporaire & "Le_Rush_.txt"
LanceExeAssocie (NomFichier)

Mais aujurd'hui je viens de me rendre compte que cela marche
en IDE mais plus en EXE pour les liens Internet

NomFichier = "www.google.fr"
LanceExeAssocie (NomFichier)

Cela me donne le messge "Fichier non trouvé"

A tout hasard je place le code en dessous .............

'Déclarations nécessaires pour LanceExeAssocie
Public Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As String,
ByVal FsShowCmd As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long

Const SW_SHOWNORMAL = 1
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&


Public Sub LanceExeAssocie(NomFichier As String)

Dim lghDC As Long, lgRep As Long
Dim stErreur As String

If NomFichier = "" Then
Exit Sub
End If

lghDC = GetDesktopWindow()
lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:", SW_SHOWNORMAL)

If lgRep <= 32 Then
'Erreur à afficher en cas d'échec de l'appel
Select Case lgRep
Case SE_ERR_FNF
stErreur = "Fichier non trouvé"
Case SE_ERR_PNF
stErreur = "Chemin non trouvé"
Case SE_ERR_ACCESSDENIED
stErreur = "Accès refusé"
Case SE_ERR_OOM
stErreur = "Pas assez de mémoire"
Case SE_ERR_DLLNOTFOUND
stErreur = "DLL non trouvée"
Case SE_ERR_SHARE
stErreur = "Une violation de partage est apparue"
Case SE_ERR_ASSOCINCOMPLETE
stErreur = "Association incomplète ou invalide"
Case SE_ERR_DDETIMEOUT
stErreur = "DDE Délai dépassé"
Case SE_ERR_DDEFAIL
stErreur = "DDE transaction abortée"
Case SE_ERR_DDEBUSY
stErreur = "DDE occupé"
Case SE_ERR_NOASSOC
stErreur = "Pas d'association enregistrée pour ce type de
fichier"
Case ERROR_BAD_FORMAT
stErreur = "Fichier EXE invalide"
Case Else
stErreur = "Erreur inconnue"
End Select
MsgBox stErreur, vbExclamation, NomEtVersion
End If

End Sub




Avatar
Jean-Marc
Hello,

je viens de tester ton code et chez moi cela fonctionne,
en IDE comme en EXE.

J'ai testé avec un fichier texte (c:truc.txt) et un lien (www.google.fr).

Pour ce denier, le résultat a bien été l'ouverture de mon browser par défaut
(Internet Explorer) et l'affichage de la page corrspondant au lien.

As tu installé un nouveau navigateur ou qq chose du genre récemment ?

FYI, j'ai testé sous Windows XP Home/IE6

Peux tu tester ceci (si tu as Word):
créer un nouveau document.
Taper ceci:
Coucou www.google.fr hello

En amenant ta souris sur le lien (qui devrait avoir été
souligné en bleu), il doit afficher un tooltip text
(Ctrl-click to follow the link) et si tu control-clic,
il doit ouvrir ton navigateur.

Ceci marche t'il?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



"Daniel AUBRY" a écrit dans le message de
news:42c6c294$0$27605$
Suite à la consultation de la FAQ VB j'ai testé ceci :

ShellExecute Me.hwnd, "open", "www.google.fr", vbNullString, vbNullString,
SW_SHOWNORMAL

Cela fonction en IDE pas en EXE !!!!!!!!!!!!!

Pas comprendre.

"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
> Bonjour à tous,
>
> j'utilise depuis longtemps une procédure qui me permet
> d'ouvrir un fichier avec le logiciel qui lui est associé sous
> Windows. Cela marche aussi pour les lien Internet.
>
> Exemple :
>
> NomFichier = DossierTemporaire & "Le_Rush_.txt"
> LanceExeAssocie (NomFichier)
>
> Mais aujurd'hui je viens de me rendre compte que cela marche
> en IDE mais plus en EXE pour les liens Internet
>
> NomFichier = "www.google.fr"
> LanceExeAssocie (NomFichier)
>
> Cela me donne le messge "Fichier non trouvé"
>
> A tout hasard je place le code en dessous .............
>
> 'Déclarations nécessaires pour LanceExeAssocie
> Public Declare Function ShellExecute Lib "shell32.dll" Alias
> "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
> lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As String,
> ByVal FsShowCmd As Long) As Long
> Public Declare Function GetDesktopWindow Lib "user32" () As Long
>
> Const SW_SHOWNORMAL = 1
> Const SE_ERR_FNF = 2&
> Const SE_ERR_PNF = 3&
> Const SE_ERR_ACCESSDENIED = 5&
> Const SE_ERR_OOM = 8&
> Const SE_ERR_DLLNOTFOUND = 32&
> Const SE_ERR_SHARE = 26&
> Const SE_ERR_ASSOCINCOMPLETE = 27&
> Const SE_ERR_DDETIMEOUT = 28&
> Const SE_ERR_DDEFAIL = 29&
> Const SE_ERR_DDEBUSY = 30&
> Const SE_ERR_NOASSOC = 31&
> Const ERROR_BAD_FORMAT = 11&
>
>
> Public Sub LanceExeAssocie(NomFichier As String)
>
> Dim lghDC As Long, lgRep As Long
> Dim stErreur As String
>
> If NomFichier = "" Then
> Exit Sub
> End If
>
> lghDC = GetDesktopWindow()
> lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:",


SW_SHOWNORMAL)
>
> If lgRep <= 32 Then
> 'Erreur à afficher en cas d'échec de l'appel
> Select Case lgRep
> Case SE_ERR_FNF
> stErreur = "Fichier non trouvé"
> Case SE_ERR_PNF
> stErreur = "Chemin non trouvé"
> Case SE_ERR_ACCESSDENIED
> stErreur = "Accès refusé"
> Case SE_ERR_OOM
> stErreur = "Pas assez de mémoire"
> Case SE_ERR_DLLNOTFOUND
> stErreur = "DLL non trouvée"
> Case SE_ERR_SHARE
> stErreur = "Une violation de partage est apparue"
> Case SE_ERR_ASSOCINCOMPLETE
> stErreur = "Association incomplète ou invalide"
> Case SE_ERR_DDETIMEOUT
> stErreur = "DDE Délai dépassé"
> Case SE_ERR_DDEFAIL
> stErreur = "DDE transaction abortée"
> Case SE_ERR_DDEBUSY
> stErreur = "DDE occupé"
> Case SE_ERR_NOASSOC
> stErreur = "Pas d'association enregistrée pour ce type de
> fichier"
> Case ERROR_BAD_FORMAT
> stErreur = "Fichier EXE invalide"
> Case Else
> stErreur = "Erreur inconnue"
> End Select
> MsgBox stErreur, vbExclamation, NomEtVersion
> End If
>
> End Sub
>
>




Avatar
Daniel AUBRY
Je suis en train de tester sur d'autres applications et cela marche.
Ma bibliothèque de fonctions est commune à tous mes projets.
Donc cela ne vient pas de la fonction ni de ses déclarations.
Je dois avoir un os quelque part. Je crois qu'on appelle cela ....un bug ?

Merci de tes efforts.

Dany
"Jean-Marc" a écrit dans le message de news:
42c6c646$0$23354$
Hello,

je viens de tester ton code et chez moi cela fonctionne,
en IDE comme en EXE.

J'ai testé avec un fichier texte (c:truc.txt) et un lien (www.google.fr).

Pour ce denier, le résultat a bien été l'ouverture de mon browser par
défaut
(Internet Explorer) et l'affichage de la page corrspondant au lien.

As tu installé un nouveau navigateur ou qq chose du genre récemment ?

FYI, j'ai testé sous Windows XP Home/IE6

Peux tu tester ceci (si tu as Word):
créer un nouveau document.
Taper ceci:
Coucou www.google.fr hello

En amenant ta souris sur le lien (qui devrait avoir été
souligné en bleu), il doit afficher un tooltip text
(Ctrl-click to follow the link) et si tu control-clic,
il doit ouvrir ton navigateur.

Ceci marche t'il?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



"Daniel AUBRY" a écrit dans le message de
news:42c6c294$0$27605$
Suite à la consultation de la FAQ VB j'ai testé ceci :

ShellExecute Me.hwnd, "open", "www.google.fr", vbNullString,
vbNullString,
SW_SHOWNORMAL

Cela fonction en IDE pas en EXE !!!!!!!!!!!!!

Pas comprendre.

"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
> Bonjour à tous,
>
> j'utilise depuis longtemps une procédure qui me permet
> d'ouvrir un fichier avec le logiciel qui lui est associé sous
> Windows. Cela marche aussi pour les lien Internet.
>
> Exemple :
>
> NomFichier = DossierTemporaire & "Le_Rush_.txt"
> LanceExeAssocie (NomFichier)
>
> Mais aujurd'hui je viens de me rendre compte que cela marche
> en IDE mais plus en EXE pour les liens Internet
>
> NomFichier = "www.google.fr"
> LanceExeAssocie (NomFichier)
>
> Cela me donne le messge "Fichier non trouvé"
>
> A tout hasard je place le code en dessous .............
>
> 'Déclarations nécessaires pour LanceExeAssocie
> Public Declare Function ShellExecute Lib "shell32.dll" Alias
> "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
> lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As
> String,
> ByVal FsShowCmd As Long) As Long
> Public Declare Function GetDesktopWindow Lib "user32" () As Long
>
> Const SW_SHOWNORMAL = 1
> Const SE_ERR_FNF = 2&
> Const SE_ERR_PNF = 3&
> Const SE_ERR_ACCESSDENIED = 5&
> Const SE_ERR_OOM = 8&
> Const SE_ERR_DLLNOTFOUND = 32&
> Const SE_ERR_SHARE = 26&
> Const SE_ERR_ASSOCINCOMPLETE = 27&
> Const SE_ERR_DDETIMEOUT = 28&
> Const SE_ERR_DDEFAIL = 29&
> Const SE_ERR_DDEBUSY = 30&
> Const SE_ERR_NOASSOC = 31&
> Const ERROR_BAD_FORMAT = 11&
>
>
> Public Sub LanceExeAssocie(NomFichier As String)
>
> Dim lghDC As Long, lgRep As Long
> Dim stErreur As String
>
> If NomFichier = "" Then
> Exit Sub
> End If
>
> lghDC = GetDesktopWindow()
> lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:",


SW_SHOWNORMAL)
>
> If lgRep <= 32 Then
> 'Erreur à afficher en cas d'échec de l'appel
> Select Case lgRep
> Case SE_ERR_FNF
> stErreur = "Fichier non trouvé"
> Case SE_ERR_PNF
> stErreur = "Chemin non trouvé"
> Case SE_ERR_ACCESSDENIED
> stErreur = "Accès refusé"
> Case SE_ERR_OOM
> stErreur = "Pas assez de mémoire"
> Case SE_ERR_DLLNOTFOUND
> stErreur = "DLL non trouvée"
> Case SE_ERR_SHARE
> stErreur = "Une violation de partage est apparue"
> Case SE_ERR_ASSOCINCOMPLETE
> stErreur = "Association incomplète ou invalide"
> Case SE_ERR_DDETIMEOUT
> stErreur = "DDE Délai dépassé"
> Case SE_ERR_DDEFAIL
> stErreur = "DDE transaction abortée"
> Case SE_ERR_DDEBUSY
> stErreur = "DDE occupé"
> Case SE_ERR_NOASSOC
> stErreur = "Pas d'association enregistrée pour ce type de
> fichier"
> Case ERROR_BAD_FORMAT
> stErreur = "Fichier EXE invalide"
> Case Else
> stErreur = "Erreur inconnue"
> End Select
> MsgBox stErreur, vbExclamation, NomEtVersion
> End If
>
> End Sub
>
>








Avatar
Daniel AUBRY
Petite précision :
en mode IDE, lgRep vaut 42
en mode EXE, il vaut 2 (< 32 donc message erreur)

??????????????????

Dany
"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
Bonjour à tous,

j'utilise depuis longtemps une procédure qui me permet
d'ouvrir un fichier avec le logiciel qui lui est associé sous
Windows. Cela marche aussi pour les lien Internet.

Exemple :

NomFichier = DossierTemporaire & "Le_Rush_.txt"
LanceExeAssocie (NomFichier)

Mais aujurd'hui je viens de me rendre compte que cela marche
en IDE mais plus en EXE pour les liens Internet

NomFichier = "www.google.fr"
LanceExeAssocie (NomFichier)

Cela me donne le messge "Fichier non trouvé"

A tout hasard je place le code en dessous .............

'Déclarations nécessaires pour LanceExeAssocie
Public Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As String,
ByVal FsShowCmd As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long

Const SW_SHOWNORMAL = 1
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&


Public Sub LanceExeAssocie(NomFichier As String)

Dim lghDC As Long, lgRep As Long
Dim stErreur As String

If NomFichier = "" Then
Exit Sub
End If

lghDC = GetDesktopWindow()
lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:", SW_SHOWNORMAL)

If lgRep <= 32 Then
'Erreur à afficher en cas d'échec de l'appel
Select Case lgRep
Case SE_ERR_FNF
stErreur = "Fichier non trouvé"
Case SE_ERR_PNF
stErreur = "Chemin non trouvé"
Case SE_ERR_ACCESSDENIED
stErreur = "Accès refusé"
Case SE_ERR_OOM
stErreur = "Pas assez de mémoire"
Case SE_ERR_DLLNOTFOUND
stErreur = "DLL non trouvée"
Case SE_ERR_SHARE
stErreur = "Une violation de partage est apparue"
Case SE_ERR_ASSOCINCOMPLETE
stErreur = "Association incomplète ou invalide"
Case SE_ERR_DDETIMEOUT
stErreur = "DDE Délai dépassé"
Case SE_ERR_DDEFAIL
stErreur = "DDE transaction abortée"
Case SE_ERR_DDEBUSY
stErreur = "DDE occupé"
Case SE_ERR_NOASSOC
stErreur = "Pas d'association enregistrée pour ce type de
fichier"
Case ERROR_BAD_FORMAT
stErreur = "Fichier EXE invalide"
Case Else
stErreur = "Erreur inconnue"
End Select
MsgBox stErreur, vbExclamation, NomEtVersion
End If

End Sub




Avatar
Daniel AUBRY
Je rêve !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

je viens de trouver.
Cela bug en mode EXE si l'exe porte le même
nom que le dossier qui le contient.

Sur le cul !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
Bonjour à tous,

j'utilise depuis longtemps une procédure qui me permet
d'ouvrir un fichier avec le logiciel qui lui est associé sous
Windows. Cela marche aussi pour les lien Internet.

Exemple :

NomFichier = DossierTemporaire & "Le_Rush_.txt"
LanceExeAssocie (NomFichier)

Mais aujurd'hui je viens de me rendre compte que cela marche
en IDE mais plus en EXE pour les liens Internet

NomFichier = "www.google.fr"
LanceExeAssocie (NomFichier)

Cela me donne le messge "Fichier non trouvé"

A tout hasard je place le code en dessous .............

'Déclarations nécessaires pour LanceExeAssocie
Public Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As String,
ByVal FsShowCmd As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long

Const SW_SHOWNORMAL = 1
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&


Public Sub LanceExeAssocie(NomFichier As String)

Dim lghDC As Long, lgRep As Long
Dim stErreur As String

If NomFichier = "" Then
Exit Sub
End If

lghDC = GetDesktopWindow()
lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:", SW_SHOWNORMAL)

If lgRep <= 32 Then
'Erreur à afficher en cas d'échec de l'appel
Select Case lgRep
Case SE_ERR_FNF
stErreur = "Fichier non trouvé"
Case SE_ERR_PNF
stErreur = "Chemin non trouvé"
Case SE_ERR_ACCESSDENIED
stErreur = "Accès refusé"
Case SE_ERR_OOM
stErreur = "Pas assez de mémoire"
Case SE_ERR_DLLNOTFOUND
stErreur = "DLL non trouvée"
Case SE_ERR_SHARE
stErreur = "Une violation de partage est apparue"
Case SE_ERR_ASSOCINCOMPLETE
stErreur = "Association incomplète ou invalide"
Case SE_ERR_DDETIMEOUT
stErreur = "DDE Délai dépassé"
Case SE_ERR_DDEFAIL
stErreur = "DDE transaction abortée"
Case SE_ERR_DDEBUSY
stErreur = "DDE occupé"
Case SE_ERR_NOASSOC
stErreur = "Pas d'association enregistrée pour ce type de
fichier"
Case ERROR_BAD_FORMAT
stErreur = "Fichier EXE invalide"
Case Else
stErreur = "Erreur inconnue"
End Select
MsgBox stErreur, vbExclamation, NomEtVersion
End If

End Sub




Avatar
Jean-Marc
Toujours pas reproduit chez moi:

C:tmptmp.exe

et ca marche toujours...

N'est ce pas la bonne manip?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;

"Daniel AUBRY" a écrit dans le message de
news:42c6d500$0$27608$
Je rêve !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

je viens de trouver.
Cela bug en mode EXE si l'exe porte le même
nom que le dossier qui le contient.

Sur le cul !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
> Bonjour à tous,
>
> j'utilise depuis longtemps une procédure qui me permet
> d'ouvrir un fichier avec le logiciel qui lui est associé sous
> Windows. Cela marche aussi pour les lien Internet.
>
> Exemple :
>
> NomFichier = DossierTemporaire & "Le_Rush_.txt"
> LanceExeAssocie (NomFichier)
>
> Mais aujurd'hui je viens de me rendre compte que cela marche
> en IDE mais plus en EXE pour les liens Internet
>
> NomFichier = "www.google.fr"
> LanceExeAssocie (NomFichier)
>
> Cela me donne le messge "Fichier non trouvé"
>
> A tout hasard je place le code en dessous .............
>
> 'Déclarations nécessaires pour LanceExeAssocie
> Public Declare Function ShellExecute Lib "shell32.dll" Alias
> "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
> lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As String,
> ByVal FsShowCmd As Long) As Long
> Public Declare Function GetDesktopWindow Lib "user32" () As Long
>
> Const SW_SHOWNORMAL = 1
> Const SE_ERR_FNF = 2&
> Const SE_ERR_PNF = 3&
> Const SE_ERR_ACCESSDENIED = 5&
> Const SE_ERR_OOM = 8&
> Const SE_ERR_DLLNOTFOUND = 32&
> Const SE_ERR_SHARE = 26&
> Const SE_ERR_ASSOCINCOMPLETE = 27&
> Const SE_ERR_DDETIMEOUT = 28&
> Const SE_ERR_DDEFAIL = 29&
> Const SE_ERR_DDEBUSY = 30&
> Const SE_ERR_NOASSOC = 31&
> Const ERROR_BAD_FORMAT = 11&
>
>
> Public Sub LanceExeAssocie(NomFichier As String)
>
> Dim lghDC As Long, lgRep As Long
> Dim stErreur As String
>
> If NomFichier = "" Then
> Exit Sub
> End If
>
> lghDC = GetDesktopWindow()
> lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:",


SW_SHOWNORMAL)
>
> If lgRep <= 32 Then
> 'Erreur à afficher en cas d'échec de l'appel
> Select Case lgRep
> Case SE_ERR_FNF
> stErreur = "Fichier non trouvé"
> Case SE_ERR_PNF
> stErreur = "Chemin non trouvé"
> Case SE_ERR_ACCESSDENIED
> stErreur = "Accès refusé"
> Case SE_ERR_OOM
> stErreur = "Pas assez de mémoire"
> Case SE_ERR_DLLNOTFOUND
> stErreur = "DLL non trouvée"
> Case SE_ERR_SHARE
> stErreur = "Une violation de partage est apparue"
> Case SE_ERR_ASSOCINCOMPLETE
> stErreur = "Association incomplète ou invalide"
> Case SE_ERR_DDETIMEOUT
> stErreur = "DDE Délai dépassé"
> Case SE_ERR_DDEFAIL
> stErreur = "DDE transaction abortée"
> Case SE_ERR_DDEBUSY
> stErreur = "DDE occupé"
> Case SE_ERR_NOASSOC
> stErreur = "Pas d'association enregistrée pour ce type de
> fichier"
> Case ERROR_BAD_FORMAT
> stErreur = "Fichier EXE invalide"
> Case Else
> stErreur = "Erreur inconnue"
> End Select
> MsgBox stErreur, vbExclamation, NomEtVersion
> End If
>
> End Sub
>
>




Avatar
Daniel AUBRY
Je viens de constater un écart entre 2 applications.
Nom de l'exe identique au nom de dossier mais procedure dans le formulaire =
0k.
Nom de l'exe identique au nom de dossier mais procedure dans un module = Pas
0k

Je creuse.

"Jean-Marc" a écrit dans le message de news:
42c6d90e$0$325$
Toujours pas reproduit chez moi:

C:tmptmp.exe

et ca marche toujours...

N'est ce pas la bonne manip?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;

"Daniel AUBRY" a écrit dans le message de
news:42c6d500$0$27608$
Je rêve !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

je viens de trouver.
Cela bug en mode EXE si l'exe porte le même
nom que le dossier qui le contient.

Sur le cul !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

"Daniel AUBRY" a écrit dans le message de news:
42c6bdd4$0$31224$
> Bonjour à tous,
>
> j'utilise depuis longtemps une procédure qui me permet
> d'ouvrir un fichier avec le logiciel qui lui est associé sous
> Windows. Cela marche aussi pour les lien Internet.
>
> Exemple :
>
> NomFichier = DossierTemporaire & "Le_Rush_.txt"
> LanceExeAssocie (NomFichier)
>
> Mais aujurd'hui je viens de me rendre compte que cela marche
> en IDE mais plus en EXE pour les liens Internet
>
> NomFichier = "www.google.fr"
> LanceExeAssocie (NomFichier)
>
> Cela me donne le messge "Fichier non trouvé"
>
> A tout hasard je place le code en dessous .............
>
> 'Déclarations nécessaires pour LanceExeAssocie
> Public Declare Function ShellExecute Lib "shell32.dll" Alias
> "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal
> lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As
> String,
> ByVal FsShowCmd As Long) As Long
> Public Declare Function GetDesktopWindow Lib "user32" () As Long
>
> Const SW_SHOWNORMAL = 1
> Const SE_ERR_FNF = 2&
> Const SE_ERR_PNF = 3&
> Const SE_ERR_ACCESSDENIED = 5&
> Const SE_ERR_OOM = 8&
> Const SE_ERR_DLLNOTFOUND = 32&
> Const SE_ERR_SHARE = 26&
> Const SE_ERR_ASSOCINCOMPLETE = 27&
> Const SE_ERR_DDETIMEOUT = 28&
> Const SE_ERR_DDEFAIL = 29&
> Const SE_ERR_DDEBUSY = 30&
> Const SE_ERR_NOASSOC = 31&
> Const ERROR_BAD_FORMAT = 11&
>
>
> Public Sub LanceExeAssocie(NomFichier As String)
>
> Dim lghDC As Long, lgRep As Long
> Dim stErreur As String
>
> If NomFichier = "" Then
> Exit Sub
> End If
>
> lghDC = GetDesktopWindow()
> lgRep = ShellExecute(lghDC, "Open", NomFichier, "", "C:",


SW_SHOWNORMAL)
>
> If lgRep <= 32 Then
> 'Erreur à afficher en cas d'échec de l'appel
> Select Case lgRep
> Case SE_ERR_FNF
> stErreur = "Fichier non trouvé"
> Case SE_ERR_PNF
> stErreur = "Chemin non trouvé"
> Case SE_ERR_ACCESSDENIED
> stErreur = "Accès refusé"
> Case SE_ERR_OOM
> stErreur = "Pas assez de mémoire"
> Case SE_ERR_DLLNOTFOUND
> stErreur = "DLL non trouvée"
> Case SE_ERR_SHARE
> stErreur = "Une violation de partage est apparue"
> Case SE_ERR_ASSOCINCOMPLETE
> stErreur = "Association incomplète ou invalide"
> Case SE_ERR_DDETIMEOUT
> stErreur = "DDE Délai dépassé"
> Case SE_ERR_DDEFAIL
> stErreur = "DDE transaction abortée"
> Case SE_ERR_DDEBUSY
> stErreur = "DDE occupé"
> Case SE_ERR_NOASSOC
> stErreur = "Pas d'association enregistrée pour ce type de
> fichier"
> Case ERROR_BAD_FORMAT
> stErreur = "Fichier EXE invalide"
> Case Else
> stErreur = "Erreur inconnue"
> End Select
> MsgBox stErreur, vbExclamation, NomEtVersion
> End If
>
> End Sub
>
>