送るメニューを便利にするJScript

送るメニューに「送るメニューに追加」項目を加えます.
これで,よく使う実行ファイルのショートカットを,すぐに送るメニューに加えることが出来ます.

送るメニューに加えることで,コンテキストメニューのメタボ化を防ぎ,さらにレジストリをいじる必要もありません.

また,これを応用して,「スタートアップに追加」項目も作れます.

参考ください.

送るメニューの場所

大抵のバージョンは,ファイル名を指定して実行で「sendto」と打つことで,SendToファイルが開くとのこと.

Win7だと出来なかった.
「C:\Users\<アカウント名>\AppData\Roaming\Microsoft\Windows\SendTo」になる.

送るメニューに追加

送るメニューにショートカットを追加したい,実行ファイル(および,そのショートカットでもOK)を右クリックで選択して送るメニューに,項目としてそのショートカットを追加するスクリプトが以下.
このスクリプトをSendToフォルダに入れておく.

ちなみに,場所の指定をSenttoフォルダの代わりにスタートアップを指定してあげることで,スタートアップへの追加を項目として入れることが可能(!).

//------------------------------------
//           もろもろ定義
//------------------------------------
// SendToフォルダの場所
strPathSendto = "C:\\Users\\shom\\AppData\\Roaming\\Microsoft\\Windows\\SendTo\\";

// ショートカット名の接尾
//strSuffix = "へのショートカット";
strSuffix = "";

//------------------------------------
//               実装
//------------------------------------
// もろもろ取得
oShell = new ActiveXObject( "WScript.Shell" );
oFS = new ActiveXObject( "Scripting.FileSystemObject" );
oArgs = WScript.Arguments;

// 作成
for( i = 0; i < oArgs.Count(); i++ )	//複数選択に対応
{
	oArg = oArgs(i);

	// 分岐してみたものの,どうやらWindowsが勝手に解決してくれる模様...
    if( oFS.GetExtensionName( oArg ) == ".lnk" )    // ショートカットファイル
    {                                                                        
        //そのままコピー                                                     
        oShell.CopyFile( oArg, strPathSendto, false );                       
    }                                                                        
    else    // 実体ファイル                                                  
	{
		// ファイル名取得
		strFileName = oFS.GetBaseName( oArg );	//拡張子抜き

		// ショートカット作成
		oLink = oShell.CreateShortcut( strPathSendto + strFileName + strSuffix + ".lnk" );
		oLink.TargetPath = oArg;	//リンク先
		oLink.Description = strFileName + strSuffix;
		oLink.Save();	//保存
	}
}

後記

実際には,こういったことを簡単に実現するツールがあれば良いですね.

みたところ良いものがなかったので,自分でつくってみようと思います.

以上.