Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

épingler un script vbs ou hta sous Windows 7

1 réponse
Avatar
Jean-Claude
Bonjour,
j'avais posé en mars dernier une question sur la possibilité d'épingler un
programme par un script, merci à JC Bellamy pour la réponse, et son petit
script... que je me suis permis d'adapter à mon besoin précis.
J'ai maintenant plusieurs scripts VBS et HTA (que je diffuse au boulot) et
j'aimerais donner la possibilité de les épingler comme un programme.
J'ai donc fait le script ci-dessous : il fonctionne très bien pour les VBS.

Pour les HTA, je remplace simplement wscript.exe par mshta.exe et test.vbs
par test.hta.
Au premier lancement, mon HTA est bien épinglé.
Ensuite, quand je clique sur l'icône en barre de tâche, le script s'ouvre
bien, mais affiche **aussitôt** une seconde icône (donc avant même qu'un
second épinglage ait lieu).
Et donc, si je choisis d'épingler à nouveau, il ajoute cette 2nde icône en
barre (contrairement au VBS).
(si besoin de clarté, je peux faire des copies d'écran).

Une idée sur cette différence ? Merci d'avance.
Jean-Claude

''' test.vbs '''
dim wsh, fso, sc
set wsh = createobject("wscript.Shell")
set fso = createobject("scripting.FileSystemObject")

sub pin(pin_name, pin_exe, pin_arg, pin_dir, pin_icon)
' créer le dossier temporaire pour y créer les raccourcis
tmp = wsh.ExpandEnvironmentStrings("%TEMP%")
dir = tmp & "\" & replace(date, "/", "") & replace(time, ":", "")
fso.createfolder(dir)
' créer le raccourci
set sc = wsh.CreateShortcut(dir & "\" & pin_name & ".lnk")
sc.TargetPath = pin_exe
sc.Arguments = """" & pin_arg & """"
sc.WorkingDirectory = pin_dir
sc.IconLocation = pin_icon
sc.Save
' épingler le raccourci
set colVerbs =
CreateObject("Shell.Application").Namespace(dir).ParseName(pin_name &
".lnk").Verbs
for each objVerb in colVerbs
if mid(objVerb.name, 2) = "pingler à la &barre des tâches" then
objVerb.DoIt
next
' supprimer raccourci et dossier
fso.deletefile(dir & "\" & pin_name & ".lnk")
fso.deletefolder(dir)
end sub

r = msgbox("Voulez-vous épingler l'outil ?", vbYesNo)
if r = vbYes then pin "test", "C:\Windows\System32\wscript.exe",
"D:\Donnees\Bureau\test.vbs", "D:\Donnees\Bureau", "C:\Windows\helppane.exe"

1 réponse

Avatar
Jean-Claude
Bon, après plusieurs recherches, je suis tombé sur un article de microsoft
qui explique pourquoi ça ne fonctionne pas avec mshta.exe
http://msdn.microsoft.com/en-us/library/dd378459%28VS.85%29.aspx
Je n'ai pas vraiment compris, mais le résultat est là... Bof.
Jean-Claude