マクロでパスワード設定の有無を知る方法No.23397
ダヴィンチ1958 さん 05/06/29 22:52
 

2005/06/29(水) 22:43:09

こんにちは、ダヴィンチ@ユーザーです。

マクロで鶴亀の『アイコンから復帰する時にもパスワードを要求する』が
有効かどうかを知る方法はありますか?

自動起動によって起動されるマクロを開発中です。
ある要求メッセージが記述されたメールを受信すると
その内容に応じて自動で返信するというマクロですが、
鶴亀メール本体の受信フォルダの移動などは
本体メニューからでないと操作出来ません。

ところが上記のようなパスワード要求が設定されていると
#n = dllfunc("RestoreWindow");の処理の時に
パスワード要求画面が表示されてしまいますので
このような事がないようにあらかじめチェックして、
パスワード要求画面が表示される場合には処理を中断したいのです。

またはマクロで強制的にRestoreWindowする方法か
パスワードを引数にして、RestoreWindowさせるような
新しい関数を作っていただくとか・・・

いかがでしょうか?

--
メーラー: TuruKame 4.17 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:23397 マクロでパスワード設定の有無をNo.23398
秀まるお2 さん 05/06/30 08:50
 
 レジストリを見れば分かりますが、マクロから扱うにはちょっと都合が悪い所
があります。

 アイコンから復帰する時にパスワード要求するかどうかは、"RestorePW"とい
うDWORD値が0以外かどうかで分かります。しかし、そもそもパスワードが設定さ
れているかどうかを先に見る必要があります。

 パスワード設定されているかどうかは、"PW2"というバイナリ値の長さが0以外
かどうかで分かりますが、秀丸マクロにはバイナリのレジストリ値を調べる機能
はありません。

> またはマクロで強制的にRestoreWindowする方法か
> パスワードを引数にして、RestoreWindowさせるような
> 新しい関数を作っていただくとか・・・

 tkinfo.dllに関数追加するのはいいんですが、出来れば汎用的に使えるような
形にしたい所です。つまり、今とりあえずRestoreWindow出来ればそれでいいん
でしょうが、もっと汎用的にパスワード要求をスキップできるような関数を用意
した方がいいような気がします。

 あるいは、またこういうバイナリーのレジストリ値に関係した問題が出てくる
かもしれないので、そういうバイナリーレジストリ値を見る関数を追加したらい
いのかもしれません。

[ ]
RE:23398 マクロでパスワード設定の有無をNo.23399
ダヴィンチ1958 さん 05/06/30 15:21
 
ダヴィンチ@ユーザーです。

秀まるお2様、ご回答ありがとうございます。

> Subject: hidesoft.8:23398| RE 23397 マクロでパスワード設定の有無を知る方法

>  tkinfo.dllに関数追加するのはいいんですが、出来れば汎用的に使えるような
> 形にしたい所です。つまり、今とりあえずRestoreWindow出来ればそれでいいん
> でしょうが、もっと汎用的にパスワード要求をスキップできるような関数を用意
> した方がいいような気がします。

ご用意いただければ、それはいいですね。
でも、せっかくパスワードを設定しているのに
自分の知らない内にRestoreWindowされるのが
嫌だっていう人の事も考慮する必要があるかもしれませんね。

だから明示的にそのパスワードをマクロに許可してやった
上でRestoreWindowできるなら少しはましかとも思います。が
・・・とは言っても使うのは自分ですから、どっちでもいいかな。
自分の意図しない時にマクロがエラーを起こして
メイン画面が表示されたままでいたら、なんて想像すると
怖いです。

>
>  あるいは、またこういうバイナリーのレジストリ値に関係した問題が出てくる
> かもしれないので、そういうバイナリーレジストリ値を見る関数を追加したらい
> いのかもしれません。

このチェック関数も必要と思います。
この両者の実現が前提でマクロを利用するユーザーが
動作を選択できるようになるので柔軟性が向上します。

[ ]
RE:23399 マクロでパスワード設定の有無をNo.23400
秀まるお2 さん 05/06/30 16:18
 
 では、どうしようかなぁという話になるんですけど…。

 とりあえずパスワードが設定されてるかどうか調べる手段が無いと始まらない
訳ですけど、バイナリーのレジストリ値を参照する汎用の関数を用意するのは、
考えてみたらかなり面倒です。ってことで、これはとりあえず、パスワード設定
されてるかどうかを調べるだけの専用の関数を追加します。

   #n = dllfunc("IsPasswordProtected");

 とか。

 単純なパスワード付きなら1が返り、アイコンから復帰時もパスワード要求な
ら2が返るとかにします。

 で、これとは別に、パスワード入力をスキップさせるやつですが、

    $pass = input( "パスワードは" );
    #n = dllfunc("SkipPasswordInput", $pass );
    #n = dllfunc("RestoreWindow");

 みたいな風に出来るようにしようかと思ったりしたんですが、それは必要です
かね?。SkipPasswordInputの効果は、それを実行してから3秒以内だけって風
にすればセキュリティ的にも問題無いかと思いますけど。

 IsPasswordProtectedだけあればいいってことなら、それだけ追加しますけど。

[ ]
RE:23400 マクロでパスワード設定の有無をNo.23408
ダヴィンチ1958 さん 05/07/01 14:55
 

2005/07/01(金) 14:38:02

こんにちは、秀まるお2さん

ダヴィンチ@ユーザーです。

いろいろご検討頂き、ありがとうございます。
 ◎#n = dllfunc("IsPasswordProtected");
 ◎#n = dllfunc("SkipPasswordInput", $pass );

お言葉に甘えて、2つともある方が嬉しいです。
( ^.^)( -.-)( _ _)よろしくおねがいします。


/*
** タイトル:『hidesoft.8:23400| RE 23399 マクロでパスワード設定の有無を
知る方法』
** 発信日:2005年06月30日(木) 16:18:00
** 発信者:秀まるお2さん
*/
> では、どうしようかなぁという話になるんですけど…。
>
> とりあえずパスワードが設定されてるかどうか調べる手段が無いと始まらない
>訳ですけど、バイナリーのレジストリ値を参照する汎用の関数を用意するのは、
>考えてみたらかなり面倒です。ってことで、これはとりあえず、パスワード設定
>されてるかどうかを調べるだけの専用の関数を追加します。
>
>   #n = dllfunc("IsPasswordProtected");
>
> とか。
>
> 単純なパスワード付きなら1が返り、アイコンから復帰時もパスワード要求な
>ら2が返るとかにします。
>
> で、これとは別に、パスワード入力をスキップさせるやつですが、
>
>    $pass = input( "パスワードは" );
>    #n = dllfunc("SkipPasswordInput", $pass );
>    #n = dllfunc("RestoreWindow");
>
> みたいな風に出来るようにしようかと思ったりしたんですが、それは必要です
>かね?。SkipPasswordInputの効果は、それを実行してから3秒以内だけって風
>にすればセキュリティ的にも問題無いかと思いますけど。
>
> IsPasswordProtectedだけあればいいってことなら、それだけ追加しますけど。

--
メーラー: TuruKame 4.17 (WinNT,500)
OS: Windows2000 SP4

[ ]
RE:23400 マクロでパスワード設定の有無をNo.23409
秀まるお2 さん 05/07/01 15:02
 
 IsPasswordProtected関数だけとりあえず追加します。SkipPasswordInput関数
は少々面倒なので、今のところは作らないでおきます。

 そもそもの要望の発端は、RestoreWindowが失敗した場合にマクロがうまく動
かなくて困るって話なんじゃないかと思いますが、実はそれだけなら、
RestoreWindowを呼んだ後でさらにIsIcon関数を呼んでやれば、たしかに
RestoreWindow出来たかどうかチェックできると思います。

 あるいは、Bypass_GetWindowLongとか、Bypass_IsWindowVisibleとか、そうい
う系のWindowsAPIのパイパス関数かあれば済むような気もしますけど…。

[ ]
RE:23408 マクロでパスワード設定の有無をNo.23410
秀まるお2 さん 05/07/01 15:40
 
 では両方作ります。

[ ]
RE:23408 マクロでパスワード設定の有無をNo.23411
秀まるお2 さん 05/07/01 15:49
 
 っと追加しようと思ったんですけど、やっぱりSkipPasswordInput関数は
サポートしないでおきます。というのは、こういう関数を用意してしまうと、そ
れによってパスワードを盗み見できてしまうからです。


[ ]
RE:23411 マクロでパスワード設定の有無をNo.23424
ダヴィンチ1958 さん 05/07/03 20:05
 

2005/07/03(日) 20:06:05

こんにちは、秀まるお2さん

ダヴィンチ@ユーザーです。

確かにそういう危険は、ありますね。
では、パスワードチェック機能だけの対応で
お願い致します。

◎IsPasswordProtected関数

/*
** タイトル:『hidesoft.8:23411| RE 23408 マクロでパスワード設定の有無を
知る方法』
** 発信日:2005年07月01日(金) 15:49:11
** 発信者:秀まるお2さん
*/
> っと追加しようと思ったんですけど、やっぱりSkipPasswordInput関数は
>サポートしないでおきます。というのは、こういう関数を用意してしまうと、そ
>れによってパスワードを盗み見できてしまうからです。

--
メーラー: TuruKame 4.17 (WinNT,500)
OS: Windows2000 SP4

[ ]