◀マクロトップへ
  • 497 サクラエディタからEvernoteに新規ノートを追加するマクロ
    • 498 Re:サクラエディタからEvernoteに新規ノートを追加するマクロ
    • 499 Re:サクラエディタからEvernoteに新規ノートを追加するマクロ
      • 500 Re2:サクラエディタからEvernoteに新規ノートを追加するマクロ
  • [497] サクラエディタからEvernoteに新規ノートを追加するマクロ usami-k 2010年07月01日 12:21

    はじめまして。usami-kといいます。

    サクラエディタからEvernoteに新規ノートを追加するマクロを作ってみました。
    WindowsのEvernoteアプリに付属する「ENScript.exe」コマンドを使用しています。

    だいたいうまく動作しているのですが、時々文字化けしてしまいます・・・。
    そのため、Wikiのマクロ投稿のページに書き込むのを躊躇していましたが、
    掲示板があると知ったので、ひとまず投稿してみます。

    もし可能でしたら、どなたかアドバイスをいただけると嬉しいです。

    **********

    // 選択文字列をEvernoteの新規ノートとして追加するマクロ
    // Evernoteアプリがインストールしてあることが条件
    // 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"

    // サクラエディタの選択文字列を取得する
    if( IsTextSelected() )
    {
    // 一時保存用ファイル名
    var temp = shell.ExpandEnvironmentStrings("%TEMP%" + "\\temp-evernote.txt");

    // 選択文字列をファイルに書き込み
    var file = fso.CreateTextFile(temp);
    file.Write(GetSelectedString());
    file.Close();

    // ファイルをEvernoteに渡す
    shell.Run(enscript + " createNote /s " + temp, 7, true);

    // ファイル削除
    fso.DeleteFile(temp);

    // 完了通知
    shell.Popup("Evernoteにメモを追加しました");
    }
    else
    {
    shell.Popup("選択文字列がありません");
    }
    • [498] Re:サクラエディタからEvernoteに新規ノートを追加するマクロ usami-k 2010年07月01日 12:24

      書き忘れたので補足します。マクロはJScriptです。
    • [499] Re:サクラエディタからEvernoteに新規ノートを追加するマクロ usami-k 2010年07月05日 12:03

      多少、変更を加えました。
      ・一時ファイル名は日付と時刻を使用(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;
      }

      • [500] Re2:サクラエディタからEvernoteに新規ノートを追加するマクロ usami-k 2010年07月06日 12:11

        間違いがありましたので修正です。
        (ファイル名に拡張子が必要)

        > // 一時保存用ファイル名
        > var tempname = shell.ExpandEnvironmentStrings("%TEMP%" + "\\" + getCurrentDateTimeString());

        // 一時保存用ファイル名
        var tempname = shell.ExpandEnvironmentStrings("%TEMP%" + "\\" + getCurrentDateTimeString() + ".txt");