多少、変更を加えました。
・一時ファイル名は日付と時刻を使用(YYYYMMDDhhmmss形式)
・一時ファイルを削除しない(文字化けが発生した時の保険)
**********
// 選択文字列をEvernoteの新規ノートとして追加するサクラエディタマクロ(JScript)
// 補足:Evernoteアプリ同梱のENScript.exeを使用している
// Author : usami-k
var shell = new ActiveXObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");
// ENScriptのパス
var enscript = "C:\\PROGRA~1\\Evernote\\Evernote3.5\\ENScript.exe"
// 一時保存用ファイル名
var tempname = shell.ExpandEnvironmentStrings("%TEMP%" + "\\" + getCurrentDateTimeString());
// サクラエディタの選択文字列を取得する
if( IsTextSelected() )
{
// 選択文字列をファイルに書き込み
var file = fso.CreateTextFile(tempname);
file.Write(Editor.GetSelectedString());
file.Close();
// ファイルをEvernoteに渡す
shell.Run(enscript + " createNote /s " + tempname, 7, true);
// Evernote同期
//<同期を行うとマクロ処理が遅くなるのでコメントアウトしている>
//shell.Run(enscript + " syncDatabase", 7, true);
// ファイル削除
//<ノートが文字化けする場合があるので保険のためコメントアウトしている>
//fso.DeleteFile(tempname);
// 完了通知
shell.Popup("Evernoteにメモを追加しました");
}
else
{
shell.Popup("選択文字列がありません");
}
// 現在の時刻をYYYYMMDDhhmmss形式で返す
function getCurrentDateTimeString()
{
var date = new Date;
var string = "";
string += date.getFullYear();
string += ("0" + (date.getMonth() + 1)).slice(-2);
string += ("0" + date.getDate()).slice(-2);
string += ("0" + date.getHours()).slice(-2);
string += ("0" + date.getMinutes()).slice(-2);
string += ("0" + date.getSeconds()).slice(-2);
return string;
}