タスクスケジューラで起動の際の起動時オNo.27166
mamam さん 09/10/14 01:05
 
こんばんは、mamamと申します。

特定の秀丸ファイル起動時にマクロを実行して、検索処理を行いたい
のですが、秀丸の起動自体をタスクスケジューラで自動で行いと
考えています。
このようなことは可能でしょうか?

下記のような設定を試してみましたが、思っていたような処理が
されませんでした。

タスクスケジューラの「実行するファイル名」に起動する秀丸の
ファイル名(フルパス)を記入し、ファイル名の後に/xマクロ名.mac
と記入しました。
タスクによって指定したファイルは起動されるのですが、マクロが
実行されません。

秀丸マクロの自動実行できる方法はありますでしょうか?

よろしくお願いいたします。

[ ]
RE:27166 タスクスケジューラで起動の際のNo.27167
秀丸担当 さん 09/10/14 10:04
 

>特定の秀丸ファイル起動時にマクロを実行して、検索処理を行いたい
>のですが、秀丸の起動自体をタスクスケジューラで自動で行いと
>考えています。
>このようなことは可能でしょうか?

秀丸エディタV7.11で Windows XP で試してみたところ、タスクスケジューラで
マクロを動かすことができました。
「実行するファイル名」は、以下のような感じでできました。

"C:\Program Files\Hidemaru\Hidemaru.exe" /z /xtest.mac "C:\test\test.txt"

秀丸エディタのファイル名は空白を含んでいるので""でくくる必要があるようで
す。
起動オプションは開くファイル名よりも先に書く必要があります。

もしログオフ中に実行するようなタスクの場合、終わったら全て終了させて
hidemaru.exeが残留しないようにする必要があります。
そのためには、マクロでは最後にexit;などとして終了させる必要があります。
あと、/z オプションを付けて常駐秀丸エディタが起動しないようにする必要が
あります。
/z なしでやってみたら常駐秀丸エディタが起動されたままになって不都合が起
きてしまいました。

[ ]
RE:27167 タスクスケジューラで起動の際のNo.27172
mamam さん 09/10/14 15:04
 
秀丸担当様

ご返答、どうもありがとうございます。

>「実行するファイル名」は、以下のような感じでできました。
教えていただいた通り、起動オプションを先に記入しましたところ、
マクロが実行されました。
書き方が間違っていたのですね、どうもありがとうございました。

ただ、ファイル起動時にエラーが発生し「起動オプションがおかしい
です。オプション:z」というメッセージが表示されます。
OKで進むと、マクロが実行されます。

私の使用しているバージョンが6.1.1だからでしょうか?
秀丸のヘルプで「起動時オプション」を確認したところ、ヘルプには
/xが書かれていませんでした。

/xを書かずに実行すると、不都合が起きるとのことですが、どのような
現象が起きますでしょうか?

また、自動で起動するファイル中に文字化けしている文字列が多数
含まれています。
そのため、ファイル起動時に「認識エラー」が表示されます。
そのままキャンセルして処理を実行したいのですが、起動時に
「認識エラー」を無視するような設定はありますでしょうか?

よろしくお願いいたします。

[ ]
RE:27172 タスクスケジューラで起動の際のNo.27175
秀丸担当 さん 09/10/14 18:09
 

>ただ、ファイル起動時にエラーが発生し「起動オプションがおかしい
>です。オプション:z」というメッセージが表示されます。
>OKで進むと、マクロが実行されます。

/zオプションが追加されたのはV7.00からでした。
V6.11ではできませんでした。
説明不足でした。申し訳ありません。

>/xを書かずに実行すると、不都合が起きるとのことですが、どのような
>現象が起きますでしょうか?

不都合が起きるのはログオフ中に実行されるようなタスクの場合で、ログオン中
に実行される場合は問題ないと思います。

ログオフ中に実行されてhidemaru.exeが残留したままになると、後からログオン
してからhidemaru.exeを実行すると、V7.11では問題があるというエラーメッセー
ジが出るようになります。
V6.xx以下では挙動が予測できない状態にになってしまうかもしれません。
プログラム的にはデスクトップ空間は別なのに共有メモリが存在するという状態
になってしまい、V6.xx以下ではそのことを想定していないです。

>また、自動で起動するファイル中に文字化けしている文字列が多数
>含まれています。
>そのため、ファイル起動時に「認識エラー」が表示されます。
>そのままキャンセルして処理を実行したいのですが、起動時に
>「認識エラー」を無視するような設定はありますでしょうか?

マクロでdisableerrormsg;を実行した後ではエラーが出ないようになりますが、
コマンドラインの場合はマクロの前に開くのでエラーが出てしまいます。

回避する方法としては、コマンドラインにファイル名を書かずにマクロで
disableerrormsg; をしてからopenfileで開くとできます。

例:
  disableerrormsg;
  openfile "C:\\test\\test.txt";
   :

別の回避方法としては、[その他]→[動作環境]で左下の「上級者向け設定」をON
にして、[その他]→[動作環境]→[ファイル]→[エンコード2]の、「開くときのエ
ンコード種類関連」の「変換できない文字があったとき警告メッセージを表示」
をOFFにしておくと出ないようになります。
ただ、OFFにした場合は通常の操作でも出ないようになってしまうので注意が必要
かもしれません。

[ ]
RE:27175 タスクスケジューラで起動の際のNo.27179
mamam さん 09/10/14 22:36
 
秀丸担当様

>V6.xx以下では挙動が予測できない状態にになってしまうかもしれません。
>プログラム的にはデスクトップ空間は別なのに共有メモリが存在するという状態
>になってしまい、V6.xx以下ではそのことを想定していないです。

では7.1.1にバージョンアップした方が良さそうですね。

>
>回避する方法としては、コマンドラインにファイル名を書かずにマクロで
>disableerrormsg; をしてからopenfileで開くとできます。
>
>例:
>  disableerrormsg;
>  openfile "C:\\test\\test.txt";
>   :

マクロで対処する場合には、該当ファイルを開く前にマクロを
実行することになりますか?
これは、別のファイル(認識エラーが発生しないもの)を起動し、
そのファイルからopenfileのマクロで該当ファイルを開くような
感じになるのでしょうか?


よろしくお願いいたします。

[ ]
RE:27179 タスクスケジューラで起動の際のNo.27181
秀丸担当 さん 09/10/15 12:46
 

>マクロで対処する場合には、該当ファイルを開く前にマクロを
>実行することになりますか?

マクロでopenfileする場合は、コマンドラインのほうにはファイル名を書かない
ことが前提です。
コマンドラインにファイル名が無いので新規状態で起動してマクロが実行して、
openfileするので、当然ではありますがマクロ実行中にファイルが開かれること
になります。


>これは、別のファイル(認識エラーが発生しないもの)を起動し、
>そのファイルからopenfileのマクロで該当ファイルを開くような
>感じになるのでしょうか?

コマンドラインにもファイル名を書いて、マクロでもopenfileすると設定によっ
ては別の秀丸エディタが新しく起動してしまうということはあるかもしれないで
す。
openfileの例はコマンドラインにファイル名が無いことが前提として書いたので、
そういったことは無いようになると思います。

ちなみに、openfileでファイル名を書く場合は、""の中の \ は \\ と書く必要が
あるので注意が必要かもしれません。

C:\test\test.txt

を開きたいという場合は、

openfile "C:\\test\\test.txt";

となります。

[ ]
RE:27181 タスクスケジューラで起動の際のNo.27190
mamam さん 09/10/15 22:48
 
秀丸担当様


ご返答、どうもありがとうございます。

>マクロでopenfileする場合は、コマンドラインのほうにはファイル名を書かない
>ことが前提です。
>コマンドラインにファイル名が無いので新規状態で起動してマクロが実行して、
>openfileするので、当然ではありますがマクロ実行中にファイルが開かれること
>になります。


別のファイルを起動するのではなく、コマンドラインにはファイル名を
書かずにマクロを実行するのですね。
そういうこともできるのですね。

ありがとうございます!試してみます。

>ちなみに、openfileでファイル名を書く場合は、""の中の \ は \\ と書く必要が
>あるので注意が必要かもしれません。

\\の書き方もありがとうございます。

[ ]