UrlRef.mac の NC への適用方法No.00082
fukinotoh2 さん 02/05/22 21:37
 
鶴亀用のマクロとしてアップされているこのマクロは,

Internet Explorerで現在表示しているホームページURLを取り出して、
それを鶴亀メールのエディタ中に挿入します.

と言うことで,IE + 秀丸で使ってみて勝手が宜しいのですが,
これを Netscape Communicator の場合は方法がありますでしょうか?


例えば,1行目の IEFrame の辺りを変更するとかの方法ですが.
    if( findwindowclass("IEFrame") == 0 ) {



[ ]
RE:00082 UrlRef.mac の NC への適用方法No.00084
アルビレオ さん 02/05/23 04:47
 
>と言うことで,IE + 秀丸で使ってみて勝手が宜しいのですが,
>これを Netscape Communicator の場合は方法がありますでしょうか?
>
>
>例えば,1行目の IEFrame の辺りを変更するとかの方法ですが.
>    if( findwindowclass("IEFrame") == 0 ) {

web巡回チェックプログラムのWWWCではブラウザの種類に依存せずにURLを取得できる
ようです。Operaでも可能でした。
http://www.nakka.com/wwwc/

ソースコードも公開されているので調べれば比較的簡単に全ブラウザ対応にできそう
です。
余裕があれば私が自力で調べたいところなんですが…今回は勘弁してください。

[ ]
RE:00084 UrlRef.mac の NC への適用方法No.00085
慶印 さん 02/05/23 12:34
 
解凍して、httpフォルダのhttptools.c を見れば良いです。

[ ]
RE:00084 UrlRef.mac の NC への適用方法No.00086
慶印 さん 02/05/23 12:44
 
>http://www.nakka.com/wwwc/

DDEでいろんなことができそうです。マクロ公開できたら良いな。

[ ]
RE:00085 UrlRef.mac の NC への適用方法No.00087
Kengo さん 02/05/23 13:15
 
> 解凍して、httpフォルダのhttptools.c を見れば良いです。

ざっとソース見ただけですけど、DDEサービス名を変えている
だけですね。
だから、自分が使うブラウザのサービス名がわかれば、
|    ddeinitiate "iexplore", "WWW_GetWindowInfo";
を書き換えて
|    ddeinitiate "Mozilla", "WWW_GetWindowInfo";
とかにしてやればいいのではないでしょうか。

で、どんなサービス名があるか?ですが、main.cには

>         lstrcpy(AppName[0], "IEXPLORE");
>         lstrcpy(AppName[1], "Mozilla");
>         lstrcpy(AppName[2], "Netscape6");
>         lstrcpy(AppName[3], "NETSCAPE");
>         lstrcpy(AppName[4], "TaBrowser");
>         lstrcpy(AppName[5], "MBROWSER");

という箇所がありました。

あと、

[turukame.5:00082]
> 例えば,1行目の IEFrame の辺りを変更するとかの方法ですが.
>     if( findwindowclass("IEFrame") == 0 ) {

ですが、これは「IEが起動しているか?」を見ているだけなので、
その3行はなくてもいいんじゃないでしょうか?

私だったら、

    ddeinitiate "iexplore", "WWW_GetWindowInfo";
    if( result ) {
        $url = dderequest( "0xFFFFFFFF" );
        ddeterminate;
        ...
    }

という風にでもしますけど。

[ ]
RE:00087 UrlRef.mac の NC への適用方法No.00088
慶印 さん 02/05/23 13:36
 
>        $url = dderequest( "0xFFFFFFFF" );
0xFFFFFFFFってトップウィンドウの値を返す動作するんですけど、
トップウィンドウと、アクティブウィンドウって一緒ですか?

[ ]
RE:00088 UrlRef.mac の NC への適用方法No.00089
Kengo さん 02/05/23 14:11
 
> >        $url = dderequest( "0xFFFFFFFF" );
> 0xFFFFFFFFってトップウィンドウの値を返す動作するんですけど、
> トップウィンドウと、アクティブウィンドウって一緒ですか?

「トップウィンドウ」って、「一番手前にあるウィンドウ」という
ことでしょうか? だとしたら多分(意味としては)同じだと思います。
一般にアクティブウィンドウは一番手前に来ますから。
#「手前にあるけれども非アクティブ」というウィンドウもありますが、
#ブラウザでは普通そんなことしないでしょうし。

あと、厳密なことを言えば、マクロの実行時には鶴亀なり秀丸なりが
アクティブ(手前)なはずですから、
・最後にアクティブだった
とか
・直前まで手前にあった
とかじゃないかと思います。

[ ]
RE:00087 UrlRef.mac の NC への適用方法No.00090
fukinotoh さん 02/05/23 15:05
 
皆さん,フォローをありがとうございます.

>だから、自分が使うブラウザのサービス名がわかれば、
>|    ddeinitiate "iexplore", "WWW_GetWindowInfo";
>を書き換えて
>|    ddeinitiate "Mozilla", "WWW_GetWindowInfo";
>とかにしてやればいいのではないでしょうか。
>
>で、どんなサービス名があるか?ですが、main.cには
>
>>         lstrcpy(AppName[0], "IEXPLORE");
>>         lstrcpy(AppName[1], "Mozilla");
>>         lstrcpy(AppName[2], "Netscape6");
>>         lstrcpy(AppName[3], "NETSCAPE");
>>         lstrcpy(AppName[4], "TaBrowser");
>>         lstrcpy(AppName[5], "MBROWSER");


>私だったら、
>
>    ddeinitiate "iexplore", "WWW_GetWindowInfo";
>    if( result ) {
>        $url = dderequest( "0xFFFFFFFF" );
>        ddeterminate;
>        ...
>    }

この方法で,上手く行きました.Y(^^)


[ ]