閲覧モードで排他制御無効にNo.23306
trad-ex2 さん 07/07/27 11:17
 
お世話になります。

通常は排他制御をオンにしているのですが、閲覧モードでファイルを
オープンしたときには排他制御を自動的にオフにしたいのですが、
何か方法がありますのでしょうか?

よろしくお願いします。

[ ]
RE:23306 閲覧モードで排他制御無効にNo.23307
秀丸担当 さん 07/07/27 13:15
 

>通常は排他制御をオンにしているのですが、閲覧モードでファイルを
>オープンしたときには排他制御を自動的にオフにしたいのですが、
>何か方法がありますのでしょうか?

マクロを使えば、一応可能になります。
閲覧モードでファイルを開いた後、以下のマクロを実行すると、排他制御をオフ
にした状態で開きなおします。


if( !browsemode ) endmacro;

openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#a = getregnum( "Sharing" );
writeregnum "Sharing", 0;
closereg;
envchanged;

reopen;

openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "Sharing", #a;
closereg;
envchanged;


[マクロ登録]→[自動起動]でファイルを開いた直後のマクロとして登録しておく
といいかもしれません。

[ ]
RE:23307 閲覧モードで排他制御無効にNo.23308
trad-ex2 さん 07/07/27 13:47
 
情報ありがとうございます。

なるほど、マクロで実現すればよいのですね!
早速、自動起動に登録いたしました。

ありがとうございました。


[ ]
RE:23307 閲覧モードで排他制御無効にNo.23309
Iranoan さん 07/07/27 15:02
 
 秀丸担当さん今日は、Iranoan です。
> >通常は排他制御をオンにしているのですが、閲覧モードでファイルを
> >オープンしたときには排他制御を自動的にオフにしたいのですが、
> >何か方法がありますのでしょうか?
>
> マクロを使えば、一応可能になります。
> 閲覧モードでファイルを開いた後、以下のマクロを実行すると、排他制御をオフ
> にした状態で開きなおします。
 これで思い出したのですが、「秀丸エディタで同じファイルを開く場合」の
動作として、「閲覧モード」で開くという要望は実現が難しいのでしょうか?
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/x04644.html#4659

 「ファイルの排他制御」で「上書きだけ禁止」の場合は、「上書き禁止」+
「閲覧モード」にしないといけないのでしょうが。

[ ]
RE:23309 閲覧モードで排他制御無効にNo.23311
秀丸担当 さん 07/07/27 17:16
 

> これで思い出したのですが、「秀丸エディタで同じファイルを開く場合」の
>動作として、「閲覧モード」で開くという要望は実現が難しいのでしょうか?
>→http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/x04644.html#4659
>
> 「ファイルの排他制御」で「上書きだけ禁止」の場合は、「上書き禁止」+
>「閲覧モード」にしないといけないのでしょうが。

実現は難しく無いですが、いまさらながらの話題ではありますが、上書き禁止と
意味が似ているボタンが増えるのは冗長というか無駄なように感じます。

当時の目的としては、手動で読み込みなおすというより、タイムスタンプのチェ
ックで読み込みなおす時、意図せずに上書き禁止が解除されるということだと思
いますが、現在のバージョンではタイムスタンプのチェックでは上書き禁止状態
は維持していて、意図しない状況というわけではなくなっていると思います。

手動で読み込み直しした場合は、上書き禁止状態は更新されますが。

[ ]
RE:23311 閲覧モードで排他制御無効にNo.23314
Iranoan さん 07/07/27 23:28
 
 秀丸担当さん今日は、Iranoan です。
> タイムスタンプのチェ
> ックで読み込みなおす時、意図せずに上書き禁止が解除されるということだと思
> いますが、現在のバージョンではタイムスタンプのチェックでは上書き禁止状態
> は維持していて、意図しない状況というわけではなくなっていると思います。
 そうだったんですね。確認してみます。

[ ]
RE:23307 閲覧モードで排他制御無効にNo.23321
trad-ex2 さん 07/07/30 20:46
 
お世話になります。

作っていただいたマクロですが、基本的にファイルが正常にオープンできた場合はい
いのですが、すでに他の人からロックされていると、
(自分の場合の設定で)エラーとなり、上書き禁止でオープンしてしまいます。

ファイルオープン以前にファイルがロックされているかどうかを
マクロ側で確認する手段はないですよね?
つまり、

1.ロック取得NG⇒自動的に閲覧モードに
2.ロック取得OK⇒自動マクロにつなげる

現状2はOKです。1ってどうなんでしょう?

以上よろしくお願いします。

[ ]
RE:23321 閲覧モードで排他制御無効にNo.23322
秀丸担当 さん 07/07/31 10:02
 

>ファイルオープン以前にファイルがロックされているかどうかを
>マクロ側で確認する手段はないですよね?
>つまり、

他の人が開いているときに上書き禁止になったかどうかをマクロで知ることはで
きないです。
単に上書き禁止として開いているかどうかは知ることができます。
あと、エラーになってマクロを中断すると、設定を元に戻す処理が実行されなく
なってしまうので、disableerrormsgを入れたほうがよかったです。
最初のマクロの1行目は以下のようにたらいいかもしれません。

disableerrormsg;
if( browsemode == 0 && readonly == 0 ) endmacro;

これだと上書き禁止属性のファイルも排他制御なしで開くことになりますが。

[ ]
RE:23322 閲覧モードで排他制御無効にNo.23325
trad-ex2 さん 07/07/31 11:36
 
そうですか。
やはり無理ですよね、、

わざわざマクロの訂正版もアップしていただきありがとうございます。
最初はエラーメッセージがでて気持ちが悪かったのですが、いただいた
修正を入れてしまうと、自分がロックを取得しているのかどうか
わからないまま、ファイル修正をしてしまうような気がして、今のまま
で、とりあえずdisableerrormsgをいれずに使ってみようと思います。

お世話様でした。

[ ]