Page 1 sur 1

Windows 10 et la zone "lancement rapide"

Publié : 07 septembre 2015, 11:36
par moums3
Bonjour à tous,
ayant eu des difficultés à épingler des scripts VBS dans la zone de lancement rapide de Windows 10, je vous fais part de ce que j'ai réussi à faire.
Je vais utiliser un exemple lié à "CCleaner.exe".
J'utilise un VBScript (ccleaner.vbs) qui me permet :
1_ de ne pas le lancer 2 fois
2_ de lui donner une priorité "haute"
3_ ce script meurt lorsque "CCleaner.exe" s'arrête.
Ce VBScript est par exemple dans le répertoire "C:\Util".

Problème rencontré
Lorsque l'on veut placer, dans la zone de lancement rapide, un raccourci vers un script VBS, Windows 10 réagit en épinglant "CSCRIPT.EXE" ou "WSCRIPT.EXE".

Méthode utilisée pour tromper Windows 10
Créez sur le bureau un raccourci pointant vers un "CCleaner.exe", lui attribuer l'icône qui convient, donnez à ce raccourci son nom DÉFINITIF, pour moi : "CCleaner" (attention : il ne doit pas exister, dans la zone de lancement rapide, de raccourci pointant vers ce même programme).
Faites glisser ce raccourci dans la zone de lancement rapide pour l'épingler, vérifiez, en déplaçant l'emplacement que Windows vous propose "Épingler à Barre des tâches", si c'est le cas, déposez le raccourci.
Allez, au moyen de l'explorateur, à :
"%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar".

Pour les néophytes (il faut bien l'être au début) %APPDATA% est le contenu d'une variable d'environnement nommée "APPDATA" que vous pouvez connaître en demandant à Windows d'exécuter "cmd" puis, dans la fenêtre "DOS" qui s'ouvre (fenêtre qui peut ENFIN être redimensionnée), entrez la commande "SET", recherchez dans la réponse de Windows ce que vaut "APPDATA" (vous pouvez copier, dans le presse-papier, du texte en faisant un clic droit dans cette fenêtre "DOS", mettre en surbrillance le texte qui vous intéresse en faisant glisser le pointeur, avec le bouton droit enfoncé, sur le texte puis valider cette sélection à copier par la touche "Entrée").

Dans ce répertoire, le nom du raccourci est : "CCleaner"
Clic droit sur ce raccourci puis sélectionnez, dans le menu déroulant, "Propriétés".
Dans la fenêtre qui s'ouvre :
_ onglet "Raccourci" changez la cible avec "C:\Util\ccleaner.vbs" (la désignation absolue du script),
_ onglet "Raccourci" redéfinissez l'icône,
cliquez sur "Appliquer" puis sur "OK".
Vous pouvez contrôler la stabilité de cette modification en redémarrant l'ordinateur.

Supprimez le raccourci que vous avez créé sur le bureau.

NOTA : la présence effective du raccourci dans "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" peu demander un certain laps de temps.

Un petit rappel : s'il existe au moins un espace dans la désignation absolue du script, placez cette désignation entre doubles quottes.

Modifié le 27 novembre 2015.

À bientôt,
moums3

Re: Windows 10 et la zone "lancement rapide"

Publié : 10 mars 2018, 12:52
par moums3
Bonjour à tous,
ayant guidé, téléphoniquement, un ami pour qu'il épingle des VBScripts dans la barre des tâches, compte tenu de la difficulté rencontrée, j'ai décidé de faire un VBScript (nommé "ÉpinglerRaccourciVBS.vbs").

Ce VBScript permet d'épingler d'autres "programmes" que des VBScripts...

Le voici :

Code : Tout sélectionner

Option Explicit
Dim a,b,bureau,caract,fso,listcaract,listecibles,lnk,ShortcutName,TaskBar,titre,windir,wss
Set wss=WScript.CreateObject("WScript.shell")
Set fso=CreateObject("Scripting.FileSystemObject")

If wss.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentMajorVersionNumber")<10 Then WScript.Echo "Ce VBScript n'est à utiliser QUE sous"&_
" Windows 10 !":WScript.Quit'vérification Windows 10
titre=WScript.ScriptName
caract=" \ / : * ? """" < > | "
listcaract=replace(caract," ","")
If MsgBox("Ce VBScript est destiné à créer des raccourcis dans la barre des tâches pour des applications ""interprétées"", ce qui est le cas, au moins, d"&_
"es VBScripts."&VbCr&VbCr&"Avec ""Windows 10"" il est impossible de placer ce type de raccourci sans que l'icône associée devienne celle de l'interpréteu"&_
"r de commande (wscript.exe ou cscript.exe)."&VbCr&VbCr&"Ce programme contourne cette difficulté, il y a peut-être d'autres moyens..."&VbCr&VbCr&"J'ai ai"&_
"nsi, dans la barre des tâches, deux raccourcis qui pointent vers le même VBScript avec des icônes et des arguments différents !",65,titre)=2 Then _
WScript.Quit
TaskBar=wss.ExpandEnvironmentStrings("%APPDATA%")&"\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
bureau=Replace(wss.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop"),"%USERPROFILE%",_
wss.ExpandEnvironmentStrings("%USERPROFILE%"))
windir=wss.ExpandEnvironmentStrings("%windir%")&"\"
ShortcutName=InputBox("Entrez ci-dessous le nom DÉFINITIF que vous voulez donner au raccourci qui va être créé."&VbCr&VbCr&"IL NE DOIT PAS ÊTRE DÉJÀ PRÉS"&_
"ENT"&VbCr&"_ SUR LE BUREAU"&VbCr&"_ DANS LA ZONE DE LANCEMENT RAPIDE."&VbCr&VbCr&"UN CONTRÔLE SERA FAIT.",titre)
If ShortcutName="" Then WScript.Quit
a=Left(ShortcutName,1)
If a=" " Or a=Chr(160) Then Sortie "",0'caractère non "visible" : espace ou faux-espace
a=ShortcutName
b=Len(a)
If b<>0 Then
  Do'recherche caractères interdits
    If Instr(listcaract,Right(a,1))<>0 Then Sortie ShortcutName,1'caractère interdit
    b=b-1
    a=Left(a,b)
    If b=0 Then Exit Do
  Loop
  listecibles=Cherche(ShortcutName,Taskbar,2)'recherche dans les raccourcis déjà épinglés et constitution de "listecibles"
  Cherche ShortcutName,wss.ExpandEnvironmentStrings("%PUBLIC%")&"\Desktop",3'recherche raccourci dans bureau "public"
  Cherche ShortcutName,bureau,3'recherche raccourci dans bureau "personnel"
End If
Set lnk=wss.CreateShortCut(bureau&"\"&ShortCutName&".lnk")
'recherche d'un programme "prête-nom" "sans risque" qui ne soit pas déjà épinglé parmi les 5 suivants
a="choice.exe"
If InStr(listecibles,VbCr&a&VbCr)<>0 Then
  a="taskkill.exe"
  If InStr(listecibles,VbCr&a&VbCr)<>0 Then
    a="write.exe"
    If InStr(listecibles,VbCr&a&VbCr)<>0 Then
      a="notepad.exe"
      If InStr(listecibles,VbCr&a&VbCr)<>0 Then
        a="regedit.exe"
        If InStr(listecibles,VbCr&a&VbCr)<>0 Then
          sortie "",4'raccourci non créé
        End If
      End If
    End If
  End If
End If
lnk.targetPath=a
lnk.Save
MsgBox "Un raccourci vers """&a&""", de nom : """&ShortcutName&""" vient d'être créé sur votre bureau."&VbCr&"NE L'ACTIVEZ PAS !"&VbCr&"Faites glisser ce"&_
" raccourci sur la barre des tâches jusqu'à l'apparition du message : ""Épingler à Barre des tâches""."&VbCr&"Lorsque ce message apparaît, relâchez le bo"&_
"uton de la souris, le raccourci (encore INADAPTÉ) est épinglé."&VbCr&VbCr&"Vous pouvez maintenant fermer cette fenêtre, l'explorateur de Windows va s'ou"&_
"vrir à l'emplacement des raccourcis de la barre des tâches ainsi qu'une autre fenêtre de ce programme QUI RISQUE D'ÊTRE MASQUÉE par la fenêtre de l'expl"&_
"orateur...",64,titre
wss.Run "explorer.exe "&TaskBar,1,False'ouverture fenêtre d'explorer dans répertoire désigné par le contenu de "TaskBar"
a=bureau&"\"&ShortCutName&".lnk"
If fso.FileExists(a) Then fso.DeleteFile a'Suppression du raccourci du bureau
MsgBox "NE MODIFIEZ PAS LE NOM, du raccourci """&ShortcutName&"""."&VbCr&"Vous DEVEZ modifier ce raccourci en le sélectionnant puis en faisant un clic dr"&_
"oit puis en sélectionnant ""Propriétés""."&VbCr&VbCr&"Vous DEVEZ rectifier : ""Cible :"" pour désigner le ""programme"" à exécuter, avec ou sans argumen"&_
"t(s)."&VbCr&VbCr&"En cliquant sur ""Changer d'icône"" lui attribuer une icône."&VbCr&"En plus de celle(s) du programme, vous pouvez en trouver dans les "&_
"""dll"" de "&windir&"System32 :"&VbCr&"_ imageres.dll (412)"&VbCr&"_ shell32.dll (327)"&VbCr&"_ wmploc.dll (189)"&VbCr&"_ ieframe.dll (102)"&VbCr&"_ set"&_
"upapi.dll (62)"&VbCr&"_ pifmgr.dll (38)"&VbCr&"_ accessibilitycpl.dll (24)"&VbCr&"_ WorkfoldersControl.dll (9)"&VbCr&"_ user32.dll (7)"&VbCr&"_ wdc.dll "&_
"(7)"&VbCr&"_ wsecedit.dll (6)"&VbCr&VbCr&"Vous pouvez compléter, si c'est nécessaire, les autres champs (même dans ""Avancé"").",64,titre
wss.Run "taskkill.exe /fi ""windowtitle eq "&TaskBar&"""",0,False'fermeture de toute fenêtre ayant pour titre le contenu de "TaskBar"
For Each a in GetObject("winmgmts:").ExecQuery("Select * from Win32_Process Where commandline like '%explorer.exe%'")
  If InStr(a.commandline,"/")=0 Then
    a.Terminate()'Windows 10 relance automatiquement "explorer"
  End If
Next
MsgBox "C'est fini !"&VbCr&VbCr&"Pour supprimer un raccourci de la zone de lancemant rapide, clic droit sur le raccourci épinglé puis sélection de :"&VbCr&_
"""Détacher de la barre des tâches"".",64,titre
'==========
Sub Sortie(chaine,nombre)
Dim mess
Select Case nombre
  Case 0 mess="Le premier caractère ne doit pas être vu comme un espace !"
  Case 1 mess="Caractère interdit dans """&chaine&""" !"&VbCr&"Caractères interdits : """&caract&"""."
  Case 2 mess="Le nom de raccourci """&chaine&""" est déjà épinglé !"
  Case 3 mess="Le nom de raccourci """&chaine&""" est déjà sur le bureau !"
  Case 4 mess="Ce programme a tenté d'utiliser"&VbCR&"_ ""choice.exe"" puis"&VbCr&"_ ""taskkill.exe"" puis"&VbCr&"_ ""write.exe"" puis"&VbCr&"_ ""notepad"&_
    ".exe"" puis"&VbCr&"_ ""regedit.exe"""&VbCr&"pour ""cibles temporaires"" successives du raccourci en construction."&VbCr&VbCr&"Ils sont tous dans la "&_
    "liste des ""programmes"" ciblés par des raccourcis dans la barre des tâches !"&VbCr&VbCr&"En voici la liste :"&listecibles
End Select
MsgBox "ÉCHEC DE LA PROCÉDURE !"&VbCr&VbCr&mess,16,titre
WScript.Quit
End Sub
'----------
Function Cherche(chaine,rep,nb)
Dim a,b,liste
Cherche=VbCr
For Each a in fso.GetFolder(rep).Files
  If LCase(chaine)&".lnk"=LCase(a.Name) Then Sortie chaine,nb
  Cherche=Cherche&chaine&VbCr
Next
End function
Modifié le 11 mars 2018.
Modifié le 05 juillet 2018 (amélioration et remplacement du premier programme "prête-nom" qui refuse d'être épinglé).
À bientôt,
moums3

Re: Windows 10 et la zone "lancement rapide"

Publié : 10 mars 2018, 16:55
par Etre_Libre
Bonjour,

C'est bien vu ;)

Il faut décidément être ingénieux en informatique pour répondre à nos besoins et ceux des autres...