Jump to content

Solution: Opening 15+ files, or multiple file types, simultaneously in Vista

Featured Replies

Posted

The system shell for Windows Vista has been purposely built by Microsoft

such that ...

 

 

- When files of various types are selected simultaneously, the option

to open them is made inaccessible to the system shell, whether through

their context menu or the keyboard (i.e., pressing {Enter}). This is

governed by file extensions, not by the program handling the files

(e.g., it occurs when *.doc and *.docx files are simultaneously

selected).

 

- When more than 15 (i.e., 16 or more) files of the same type are

selected, the same event occurs.

 

This is documented by Zack Robinson, a Microsoft senior developer, in

the post

http://www.vistax64.com/vista-music-pictures-video/119450-opening-multiple-files-2.html#post749024.

 

Here's a workaround that solves both problems and places the solution

in the context menu.

 

It requires only creating a Visual Basic script and creating a shortcut

to it in the Send To folder.

 

2

- Create or download (rename its extension to *.vbs) the script

attached to this post (code posted below):

 

 

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

--------------------

 

 

- Create a shortcut to it and place the shortcut in your Send To

folder. If you can't find your Send To folder, press Windows+R and

run "shell:sendto".

 

Now, when you right-click on a file or files, choosing the (for

example) "0_file_execution" entry in the Send To list will open all

selected files.

 

Running the script directly, instead of passing it files as arguments

from the Send To list item, allows you to set the amount of time that

separates the opening of each file if you set this value too low, Vista

may fail to open all files.

 

 

+-------------------------------------------------------------------+

|Filename: 0_file_execution.txt |

|Download: http://forums.techarena.in/attachment.php?attachmentid=7279|

+-------------------------------------------------------------------+

 

--

ananda6359

------------------------------------------------------------------------

ananda6359's Profile: http://forums.techarena.in/members/ananda6359.htm

View this thread: http://forums.techarena.in/vista-help/1056937.htm

 

http://forums.techarena.in

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...