Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

In Windows Vista, if you select 15 files (say text files) you can right click and select Open (or whatever the default action is for that file type). If you select 16 files, then Open disappears from the list.

Is there anyway to extend or remove that limit?

share|improve this question

2 Answers 2

up vote 1 down vote accepted

Take a look here. I haven't tested, but it looks like the solution you want - kinda hack-y though.


Formatted as best I could, markdown doesn't like ,e.

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

  1. 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).
  2. 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 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.

  1. Create or download (rename its extension to *.vbs) the script attached to this post (code posted below).

  2. 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.


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
share|improve this answer
    
Well, it works for text files and other files Windows knows how to deal with by default. Fails when custom actions are added (like registering a .dll) but I didn't ask about that. Time to see if I can edit the script and make it work. Thanks for the link. –  Corin Oct 20 '09 at 22:06
    
tried to make the script legible; i'm not a VBS expert so hopefully i didn't break it. markdown wasn't happy with the \t's in the source maybe? –  quack quixote Oct 20 '09 at 23:07
    
Much better, thanks ~quack. –  Dmatig Oct 20 '09 at 23:11

Thanks for the help. But I took it one step more. I didn't use the Visual Basic script. I when to my sent to dir and but short cuts for the software I want to run. Like Word, Exc, Firefox, and so on. I know you can't do more than one type of software, but it sure nice to select all word files and sent it to word, all internet links and sent it to Firefox, and so on.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.