Posted October 17, 200816 yr 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.