'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'© 2010 Ramesh Srinivasan.
'AddtoSendTo.vbs - Adds "Add to Send To" Option in the Context Menu
'Sends a file's shortcut to the Send To folder.
'Written for Windows XP/Vista/7 systems.
'Website: http://www.winhelponline.com/blog
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'Version History:
'(ver 1.0) Oct 05, 2010
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strSendToFolder = WshShell.SpecialFolders("SendTo") & "\"
strMsg = "Completed!" & Chr(10) & Chr(10) & "AddToSendTo.vbs - © 2010 Ramesh Srinivasan" & vbCrLf & vbCrLf & "This script comes from " & Chr(34) & "The Winhelponline Blog" & Chr(34) & " - Visit us at http://www.winhelponline.com/blog"

Set objArgs = WScript.Arguments
If WScript.Arguments.Count =  0 Then
	'Show the Inputbox to let the user install or uninstall this script
	rtn= Trim(UCase(InputBox ("Type INSTALL to add the ADD TO SEND TO context menu option, or type UNINSTALL if you wish to remove the ADD TO SEND TO context menu option from your system.", 	"Configuring AddtoSendTo.vbs...", "INSTALL")))
	If rtn = "INSTALL" Then RunInstall
	If rtn = "UNINSTALL" Then RunUninstall
Else
	'If the Arguments count is >0
	For I = 0 to objArgs.Count - 1
		'Set objFile = objFSO.GetFile(objArgs(I))
		strFileName = objFSO.GetAbsolutePathName(objArgs(I))
		strBaseName = objFSO.GetBaseName(objArgs(I))
		strBaseName = UCase(left(strBaseName, 1)) + Right(strBaseName, len(strBaseName)-1)
		strFileext = objFSO.GetExtensionName(objArgs(I))
		AddtoSendTo strFileName,strFileext,strBaseName
	Next
End If

Sub AddtoSendTo(fname,fextn,basename)
	Select Case fextn
		Case "lnk"
			objFSO.CopyFile fname, strSendToFolder
	
		Case Else		
			Set oShellLink = WshShell.CreateShortcut(strSendToFolder & "\" & basename & ".lnk")
			oShellLink.TargetPath = fname
			oShellLink.Save	
	End Select
	MsgBox "Shortcut added to the Send To menu",vbOKOnly,"Add to Send To"
End Sub

Sub RunInstall
	'Add registry values
	On Error Resume Next
	strCMD = "wscript.exe " & Chr(34) & WScript.ScriptFullName & Chr(34)
	strCMD = strCMD & " " & Chr(34) & "%1" & Chr(34)
	WshShell.RegWrite "HKCU\Software\Classes\directory\shell\AddtoSendTo\", "Add to Send To", "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\directory\shell\AddtoSendTo\Extended", "", "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\directory\shell\AddtoSendTo\command\", strCMD, "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\exefile\shell\AddtoSendTo\", "Add to Send To", "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\exefile\shell\AddtoSendTo\command\", strCMD, "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\exefile\shell\AddtoSendTo\Extended", "", "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\lnkfile\shell\AddtoSendTo\", "Add to Send To", "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\lnkfile\shell\AddtoSendTo\command\", strCMD, "REG_SZ"
	WshShell.RegWrite "HKCU\Software\Classes\lnkfile\shell\AddtoSendTo\Extended", "", "REG_SZ"
	On Error Goto 0
	MsgBox strMsg, vbokonly,"Installed"	
End Sub

Sub RunUninstall
	'Remove the registry values added by this script.
	On Error Resume Next
	WshShell.RegDelete "HKCU\Software\Classes\directory\shell\AddtoSendTo\command\"
	WshShell.RegDelete "HKCU\Software\Classes\directory\shell\AddtoSendTo\"
	WshShell.RegDelete "HKCU\Software\Classes\exefile\shell\AddtoSendTo\command\"
	WshShell.RegDelete "HKCU\Software\Classes\exefile\shell\AddtoSendTo\"
	WshShell.RegDelete "HKCU\Software\Classes\lnkfile\shell\AddtoSendTo\command\"
	WshShell.RegDelete "HKCU\Software\Classes\lnkfile\shell\AddtoSendTo\"
	On Error Goto 0
	MsgBox strMsg, vbokonly,"Uninstalled"
End Sub