Как и на скриншоте выше, у меня есть все записи по умолчанию, а также некоторые добавленные мной вручную в папку «Отправить в меню», которую я открыл с помощью shell:SendTo
.
Но не все записи отображаются в меню «Отправить».
Как это исправить?
Как и на скриншоте выше, у меня есть все записи по умолчанию, а также некоторые добавленные мной вручную в папку «Отправить в меню», которую я открыл с помощью shell:SendTo
.
Но не все записи отображаются в меню «Отправить».
Как это исправить?
Согласно https://winhelponline.com/xp/sendtofix.htm, это может быть проблема с некоторыми записями реестра, которые управляют функциональностью SendTo. У них есть скрипт, который должен это исправить.
Первоначально он был для Windows XP, Vista и 7, поэтому я внес небольшое изменение, чтобы заставить его работать на Windows 10.
Сохраните следующий скрипт в файл fixsendto.vbs и выполните его с помощью командной строки wscript.exe "C:\Scripts\fixsendto.vbs"
. Измените путь к файлу соответственно.
'-----------------------------------------------------------------
'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"
else
MsgBox "This script runs in Windows 10/8/7/Vista/XP systems only"
wscript.Quit
end if
Next
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
Next
'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
objProcess.Terminate()
End If
Next
MsgUser = Msgbox ("Fixed the Send To menu.", 4160, "'Send To' menu fix for Windows 10/8/7/Vista/XP.")
Set WshShell = Nothing