Jetez un coup d'œil aquí . Je ne l'ai pas testé, mais il semble que ce soit la solution que vous recherchez - un peu bricolé cependant.
Formaté du mieux que je pouvais, markdown n'aime pas ,e.
Le système Shell pour Windows Vista a été délibérément construit par Microsoft de telle sorte que ...
- Lorsque des fichiers de différents types sont sélectionnés simultanément, l'option pour les ouvrir est rendue inaccessible au système Shell, que ce soit par le biais de leur menu contextuel ou du clavier (c'est-à-dire en en appuyant sur {Entrée}). Ceci est régi par les extensions de fichiers, et non par le programme manipulant les fichiers (par exemple, cela se produit se produit lorsque des fichiers *.doc et *.docx sont sont sélectionnés simultanément).
- Lorsque plus de 15 (c'est-à-dire 16 ou plus) fichiers du même type sont sélectionnés, le même événement se produit. sélectionnés, le même événement se produit.
Ceci est documenté par Zack Robinson, une développeur senior de Microsoft Voici une solution de contournement qui résout les deux problèmes et place la solution dans le menu contextuel contextuel.
Il suffit de créer un visuel Visual Basic script et de créer un raccourci dans le dossier "Send To".
-
Créer ou télécharger (renommer son extension en *.vbs) le script joint à ce billet ( code affiché ci-dessous ).
-
Créez un raccourci vers celui-ci et placez ce raccourci dans votre liste de destinataires. dans votre dossier d'envoi. Si vous ne trouvez pas votre dossier "Send To appuyez sur Windows+R et exécutez "Shell:sendto".
Maintenant, lorsque vous cliquez avec le bouton droit de la souris sur un fichier ou fichiers, vous pouvez choisir l'option (par exemple) 0_file_execution
dans la rubrique "Envoyer à ouvrira tous les fichiers sélectionnés.
Exécuter directement le script, au lieu de de lui passer des fichiers en tant qu'arguments depuis l'élément de liste Send To, vous permet de définir la quantité de temps qui sépare l'ouverture de chaque fichier ; si vous définissez cette valeur trop faible, Vista risque de ne pas tous les fichiers.
Code :
on error resume next
nl=vbcrlf
wait=200
set shell=wscript.createobject("wscript.shell")
set filesystem=createobject("scripting.filesystemobject")
set scriptfile=filesystem.getfile(wscript.scriptfullname)
stamp=scriptfile.datelastmodified
stamparray=split(year(stamp)&"."&month(stamp)&"."&day(stamp)&"."&hour(stamp)&"."&minute(stamp)&"."&second(stamp),".")
version=stamparray(0)
for loopversion=1to ubound(stamparray)
versionlength=len(stamparray(loopversion))
if versionlength<2 then stamparray(loopversion)=string(2-versionlength,"0")&stamparray(loopversion)
version=version&"."&stamparray(loopversion)
next
set contents=filesystem.opentextfile(wscript.scriptfullname,1)
contents=split(contents.readall,nl)
unit=4^5
set files=wscript.arguments
if files.count<1 then
do
wait=inputbox(nl&nl&"Set a period, in milliseconds, to wait while files open:",filesystem.getbasename(scriptfile)&" v"&version&" : "&int(scriptfile.size/unit)&"k"&(scriptfile.size/unit-int(scriptfile.size/unit))*unit&"b : "&ubound(contents)&" lines",wait)
if wait=empty then wscript.quit
if isnumeric(wait) then exit do
loop
set scriptfile=filesystem.createtextfile(wscript.scriptfullname)
for loopcontents=0to ubound(contents)
newline=contents(loopcontents)
if instr(newline,"wait=")>0 and isnumeric(replace(newline,"wait=","")) then newline="wait="&wait
scriptfile.write(newline)
if loopcontents<ubound(contents) then scriptfile.write(nl)
next
else
for each file in files
shell.run """"&file&""""
wscript.sleep wait
next
end if