// 選択文字列を Google で検索する // TAB=4 // 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに PPA.DLL を入れておいてください。 // マクロファイルの拡張子は .PPA でなくてはなりません。 // http:プロトコルとの関連付けを使用して検索ページを表示させます。 // // 関連付けの設定がおかしい、などでうまく動作しない場合は Shell の行(関連付けでの起動)を // 注釈にして Exec の行(Webブラウザの実行ファイルを直接指定して実行)を有効にして使用して // みてください。 // (その場合、環境に合わせて Exec 中の 'C:\Program Files\Internet Explorer\IEXPLORE.EXE' //  を書き換える必要があります。) var url:String; // 文字列変数 url を用意 word,lr:String; // 文字列変数 word,lr を用意 num:Integer; // 整数数値変数 num を用意 bef,aft,tmp:String; // 文字列変数 bef,aft,tmp を用意 chn,pt:Integer; // 整数数値変数 chn,pt を用意 begin // 表示件数 num := 10; // 10件ずつ表示 // num := 20; // 20件ずつ表示 // num := 30; // 30件ずつ表示 // num := 50; // 50件ずつ表示 // num := 100; // 100件ずつ表示 // 検索の対象にする言語 lr := ''; // すべての言語 // lr := 'lang_is'; // アイスランド語 // lr := 'lang_ar'; // アラビア語 // lr := 'lang_it'; // イタリア語 // lr := 'lang_id'; // インドネシア語 // lr := 'lang_et'; // エストニア語 // lr := 'lang_nl'; // オランダ語 // lr := 'lang_ca'; // カタロニア語 // lr := 'lang_el'; // ギリシャ語 // lr := 'lang_hr'; // クロアチア語 // lr := 'lang_sv'; // スウェーデン語 // lr := 'lang_es'; // スペイン語 // lr := 'lang_sk'; // スロバキア語 // lr := 'lang_sl'; // スロベニア語 // lr := 'lang_sr'; // セルビア語 // lr := 'lang_cs'; // チェコ語 // lr := 'lang_da'; // デンマーク語 // lr := 'lang_tr'; // トルコ語 // lr := 'lang_de'; // ドイツ語 // lr := 'lang_no'; // ノルウェー語 // lr := 'lang_hu'; // ハンガリー語 // lr := 'lang_fi'; // フィンランド語 // lr := 'lang_fr'; // フランス語 // lr := 'lang_bg'; // ブルガリア語 // lr := 'lang_iw'; // ヘブライ語 // lr := 'lang_pt'; // ポルトガル語 // lr := 'lang_pl'; // ポーランド語 // lr := 'lang_lv'; // ラトビア語 // lr := 'lang_lt'; // リトアニア語 // lr := 'lang_ro'; // ルーマニア語 // lr := 'lang_ru'; // ロシア語 // lr := 'lang_zh-CN'; // 中国語(簡体) // lr := 'lang_zh-TW'; // 中国語(繁体) // lr := 'lang_ja'; // 日本語 // lr := 'lang_en'; // 英語 // lr := 'lang_ko'; // 韓国語 word := Trim(S_GetSelectedString(0)); // 文字列変数 word に「“選択部分の文字列”から先頭と末尾のスペースを削除した文字列」を取得 // -------------------------------------------------- // // 文字列 word 内の記号を置換する。 for chn :=1 to 7 do // 7種類の置換を順におこなう。 begin //{ case chn of //{ 1: begin bef:='%'; aft:='%25'; end; // ループ1回目では '%' ⇒ '%25' 変換 2: begin bef:='#'; aft:='%23'; end; // ループ2回目では '#' ⇒ '%23' 変換 3: begin bef:='&'; aft:='%26'; end; // ループ3回目では '&' ⇒ '%26' 変換 4: begin bef:='='; aft:='%3D'; end; // ループ4回目では '=' ⇒ '%3D' 変換 5: begin bef:='?'; aft:='%3F'; end; // ループ5回目では '?' ⇒ '%3F' 変換 6: begin bef:='+'; aft:='%2B'; end; // ループ6回目では '+' ⇒ '%2B' 変換 7: begin bef:=' '; aft:='+' ; end; // ループ7回目では ' ' ⇒ '+' 変換 end; //} // ↓文字列 word の中の文字 bef を aft に置換する。 tmp := ''; while True do // 無限ループ begin //{ pt := pos(bef,word); // word の中から bef の場所を探す。 if pt=0 then break; // bef が見つからないならループを脱出する。 tmp := tmp + Copy(word,1,pt-1) + aft; // tmp の後ろに「word 内の bef の前までの文字列」+「置換後の文字列 aft」を連結する。 word := Delete(word,1,pt+Length(bef)-1 ); // word の内容を「word 内の bef の後ろの文字列」に変更する。 end; //} word := tmp + word; // word := 「置換作業が完了した文字列 tmp」 + 「一番後ろの bef よりも後ろの残り部分」 end; //} // -------------------------------------------------- // if word <> '' then // 選択中の文字列があった(またはカーソル位置に単語があった)なら begin // Google 検索ページの URL を生成 ⇒ 文字列変数 url に格納 url := 'http://www.google.co.jp/search?ie=Shift_JIS&hl=ja&lr=' + lr + '&num=' + IntToStr(num) + '&q=' + word; // ↓Webブラウザの実行ファイル(この場合は Internet Explorer)を直接指定して実行する場合 // Exec( 'C:\Program Files\Internet Explorer\IEXPLORE.EXE' , url , 0 ); // ↓(http:プロトコルに対する)関連付けにて実行する場合 Shell( url , '' ); // ※ Shellで使っている「プロトコルとの関連付け」は Internet Explorer によって提供される機能です。 //  「Windows 95 で Internet Explorer をインストールしていない」などの環境では動作しません。 //  例えば「Win95 で IE は入れていない。Netscape しか入っていない」という場合は素直に //  「Exec を使用して、Netscape.exe を指定する」ようにして下さい。 end; end;