OVH Cloud OVH Cloud

ShellExecute - Open

4 réponses
Avatar
Dominic Feron
Salut à tous!

J'ai un petit problème en ce qui concerne le ShellExecute de VB. J'ai fais
une petite application qui fait tout simplement ouvrir Internet Explorer
avec l'URL que je lui ai spécifié. Ceci fonctionne bien mais..

S'il y a déjà une fenêtre Internet Explorer ouverte, il prendra cette
fenêtre à la place d'en ouvrir une nouvelle.

Comment je fais pour lui forcer d'en ouvrir une nouvelle?

Voici le code que j'utilise à présent:


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

ShellExecute hwnd, "open", "http://Net/ListeTelephonique/index.aspx",
vbNullString, "", 0

Merci grandement de votre aide!

4 réponses

Avatar
Zoury
Salut Dominic!

regarde ce lien :
http://www.visualbasicforum.com/showthread.php?pt7282#post747282


--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic
"Dominic Feron" a écrit dans le message de
news:%
Salut à tous!

J'ai un petit problème en ce qui concerne le ShellExecute de VB. J'ai fais
une petite application qui fait tout simplement ouvrir Internet Explorer
avec l'URL que je lui ai spécifié. Ceci fonctionne bien mais..

S'il y a déjà une fenêtre Internet Explorer ouverte, il prendra cette
fenêtre à la place d'en ouvrir une nouvelle.

Comment je fais pour lui forcer d'en ouvrir une nouvelle?

Voici le code que j'utilise à présent:


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

ShellExecute hwnd, "open", "http://Net/ListeTelephonique/index.aspx",
vbNullString, "", 0

Merci grandement de votre aide!




Avatar
Dominic Feron
Merci beaucoup!

Le code fait peur... mais ça marche #1 !


"Zoury" a écrit dans le message de
news:
Salut Dominic!

regarde ce lien :
http://www.visualbasicforum.com/showthread.php?pt7282#post747282


--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic
"Dominic Feron" a écrit dans le message


de
news:%
> Salut à tous!
>
> J'ai un petit problème en ce qui concerne le ShellExecute de VB. J'ai


fais
> une petite application qui fait tout simplement ouvrir Internet Explorer
> avec l'URL que je lui ai spécifié. Ceci fonctionne bien mais..
>
> S'il y a déjà une fenêtre Internet Explorer ouverte, il prendra cette
> fenêtre à la place d'en ouvrir une nouvelle.
>
> Comment je fais pour lui forcer d'en ouvrir une nouvelle?
>
> Voici le code que j'utilise à présent:
>
>
> 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
>
> ShellExecute hwnd, "open", "http://Net/ListeTelephonique/index.aspx",
> vbNullString, "", 0
>
> Merci grandement de votre aide!
>
>




Avatar
Guy DETIENNE
Salut,

Pour expliquer et ne plus avoir trop peur :

Le code ne fait qu'aller chercher dans la base des registres l'emplacement
de l'exécutalbe du Browser par défaut, très souvent "C:Program
FilesInternet Exploreriexplore.exe" et le met dans la variable sValue

-> sValue = QueryValue(HKEY_CLASSES_ROOT, "httpshellopencommand", "")

Ensuite un Shell lance le programme iexplore.exe (placé dans la variable
sValue) avec en paramètre l'URL désirée (variable sURL).

-> retval = Shell(sValue & " " & sURL, vbNormalFocus)


Le code devient tout de suite lourd à partir du moment où l'on veut aller
lire dans le registre.

J'espère que cela te sera utile.

Guy




"Dominic Feron" a écrit dans le message de
news:
Merci beaucoup!

Le code fait peur... mais ça marche #1 !


"Zoury" a écrit dans le message de
news:
Salut Dominic!

regarde ce lien :
http://www.visualbasicforum.com/showthread.php?pt7282#post747282


--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic
"Dominic Feron" a écrit dans le message


de
news:%
> Salut à tous!
>
> J'ai un petit problème en ce qui concerne le ShellExecute de VB. J'ai


fais
> une petite application qui fait tout simplement ouvrir Internet
> Explorer
> avec l'URL que je lui ai spécifié. Ceci fonctionne bien mais..
>
> S'il y a déjà une fenêtre Internet Explorer ouverte, il prendra cette
> fenêtre à la place d'en ouvrir une nouvelle.
>
> Comment je fais pour lui forcer d'en ouvrir une nouvelle?
>
> Voici le code que j'utilise à présent:
>
>
> 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
>
> ShellExecute hwnd, "open", "http://Net/ListeTelephonique/index.aspx",
> vbNullString, "", 0
>
> Merci grandement de votre aide!
>
>








Avatar
Dominic Feron
Merci de l'explication :)

"Guy DETIENNE" a écrit dans le message de
news:
Salut,

Pour expliquer et ne plus avoir trop peur :

Le code ne fait qu'aller chercher dans la base des registres l'emplacement
de l'exécutalbe du Browser par défaut, très souvent "C:Program
FilesInternet Exploreriexplore.exe" et le met dans la variable sValue

-> sValue = QueryValue(HKEY_CLASSES_ROOT, "httpshellopencommand", "")

Ensuite un Shell lance le programme iexplore.exe (placé dans la variable
sValue) avec en paramètre l'URL désirée (variable sURL).

-> retval = Shell(sValue & " " & sURL, vbNormalFocus)


Le code devient tout de suite lourd à partir du moment où l'on veut aller
lire dans le registre.

J'espère que cela te sera utile.

Guy




"Dominic Feron" a écrit dans le message


de
news:
> Merci beaucoup!
>
> Le code fait peur... mais ça marche #1 !
>
>
> "Zoury" a écrit dans le message de
> news:
>> Salut Dominic!
>>
>> regarde ce lien :
>> http://www.visualbasicforum.com/showthread.php?pt7282#post747282
>>
>>
>> --
>> Cordialement
>> Yanick Lefebvre
>> MVP pour Visual Basic
>> "Dominic Feron" a écrit dans le


message
> de
>> news:%
>> > Salut à tous!
>> >
>> > J'ai un petit problème en ce qui concerne le ShellExecute de VB. J'ai
> fais
>> > une petite application qui fait tout simplement ouvrir Internet
>> > Explorer
>> > avec l'URL que je lui ai spécifié. Ceci fonctionne bien mais..
>> >
>> > S'il y a déjà une fenêtre Internet Explorer ouverte, il prendra cette
>> > fenêtre à la place d'en ouvrir une nouvelle.
>> >
>> > Comment je fais pour lui forcer d'en ouvrir une nouvelle?
>> >
>> > Voici le code que j'utilise à présent:
>> >
>> >
>> > 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
>> >
>> > ShellExecute hwnd, "open", "http://Net/ListeTelephonique/index.aspx",
>> > vbNullString, "", 0
>> >
>> > Merci grandement de votre aide!
>> >
>> >
>>
>>
>
>