Screenshot of send to menu

As in the screenshot above I have all the default entries along with some added by myself manually in the send to menu folder which I opened using shell:SendTo.

But not all the entries are showing up in the send to menu.

How to fix this?

  • According to winhelponline.com/xp/sendtofix.htm, it could be a problem with some registry entries that manage the SendTo functionality. They have a script that might fix it. (It's for Windows XP, but it might still apply.) – Doug Deden Jan 10 '19 at 15:40
  • I have checked that, but it shows a message when I executed the script that it only works in windows 7 and below :/ – achintha Jan 10 '19 at 16:05
  • The code that gives you that message is checking if the OS is XP, Vista, or 7, and choosing a directory structure accordingly. (I suspect that when they wrote it, Window 8 and 10 did not yet exist.) You can modify the script to have it treat Windows 10 the same as Windows 7 -- the directory in question is the same for 10 as it is for 7. – Doug Deden Jan 10 '19 at 16:10
  • ah, that fixed it, I've changed the script and executed. Everything back on track. Thank you Doug :) – achintha Jan 10 '19 at 16:29
  • That's great news. I'll write it up as an answer. – Doug Deden Jan 10 '19 at 16:32

According to https://winhelponline.com/xp/sendtofix.htm, it could be a problem with some registry entries that manage the SendTo functionality. They have a script that should fix it.

It was originally for Windows XP, Vista, and 7, so I've made a slight change to get it to work for Windows 10.

Save the following script to a file fixsendto.vbs, and execute it using command prompt wscript.exe "C:\Scripts\fixsendto.vbs". Change the file path accordingly. You'll probably have to run wscript from an admin-level command prompt.

'Compatibility : Windows XP, Windows Vista and Windows 7 (added 8 and 10)
'Author        : Ramesh Srinivasan - Microsoft MVP (Windows Shell)
'Created on    : February 19, 2005
'Revised on    : November 01, 2010
'Description   : Fixes the Send To menu (missing all the shortcuts)
'Homepage      : http://windowsxp.mvps.org
'More Info     : http://windowsxp.mvps.org/sendtofix.htm
'Requirement   : Needs Administrative privileges

Set WshShell = CreateObject("WScript.Shell")
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2")

'Determine OS version
Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
    if instr(objOperatingSystem.Caption,"Vista") Or instr(objOperatingSystem.Caption,"Windows 7") Or instr(objOperatingSystem.Caption,"Windows 8") Or instr(objOperatingSystem.Caption,"Windows 10") then
        strSendTo = "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo"
    elseif instr(objOperatingSystem.Caption,"XP") Then  
        strSendTo = "%USERPROFILE%\SendTo"
        MsgBox "This script runs in Windows 10/8/7/Vista/XP systems only"
    end if

USFolderPath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
On Error Resume Next
WshShell.RegWrite "HKCR\exefile\shellex\DropHandler\", "{86C86720-42A0-1069-A2E8-08002B30309D}", "REG_SZ"
WshShell.RegWrite "HKCR\lnkfile\shellex\DropHandler\", "{00021401-0000-0000-C000-000000000046}", "REG_SZ"
WshShell.RegWrite USFolderPath & "\SendTo", strSendTo, "REG_EXPAND_SZ"
Wshshell.RUN ("regsvr32.exe shell32.dll /i /s")

'Get curr. user name
Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
For Each objItem in colItems
    strCurrentUserName = objItem.UserName

'Restart user shell
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'Explorer.exe'")
For Each objProcess in colProcessList
    colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
    If strUserDomain & "\" & strNameOfUser = strCurrentUserName then
    End If

MsgUser = Msgbox ("Fixed the Send To menu.", 4160, "'Send To' menu fix for Windows 10/8/7/Vista/XP.")
Set WshShell = Nothing
  • I think it's better to have details about how to save the script(i mean extension) and how to execute. – achintha Jan 10 '19 at 17:03
  • 1
    @achintha Feel free to edit those details into the answer. That's encouraged on Stack Exchange sites. – I say Reinstate Monica Jan 10 '19 at 17:12
  • 1
    +1 worked for me in Windows 10 v1909. Just a note that you have to run wscript from an elevated command prompt. If you don't, it doesn't throw any errors, but it doesn't work. – Martin Jan 7 '20 at 9:13
  • That's great to hear, @Martin. I've added that note to the answer. – Doug Deden Jan 7 '20 at 23:58

Here's the PowerShell equivalent of Ramesh's code (without version checking). This can be pasted into a PowerShell Admin Console or saved as a .ps1 file.

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | out-null
$Splat = @{
   'Path'  = 'HKCR:\exefile\shellex\DropHandler\'
   'Value' = '{86C86720-42A0-1069-A2E8-08002B30309D}'
Set-Item @Splat

$Splat = @{
   'Path'  = 'HKCR:\lnkfile\shellex\DropHandler\'
   'Value' = '{00021401-0000-0000-C000-000000000046}'
Set-Item @Splat

$Splat = @{
   'Path'  = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
   'Name'  = 'SendTo'   
   'Value' = '%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo'
   'Type'  = 'ExpandString'
Set-ItemProperty @Splat

start-Process -FilePath regsvr32.exe -ArgumentList shell32.dll, /i, /s

Get-Process Explorer | Stop-Process
  • I get errors when trying this: Set-Item : Cannot find drive. A drive with the name 'HKCR' does not exist. – Michaël Mar 30 '20 at 12:17
  • My bad! Drive is not standard. I will fix. – Keith Miller Mar 30 '20 at 13:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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