// オンラインソフトウェア検索:選択文字列を Vector Inc. のソフトウェア情報から検索する // 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,s_eng:String; // 文字列変数 word,s_eng を用意 num:Integer; // 整数数値変数 num を用意 bef,aft,tmp:String; // 文字列変数 bef,aft,tmp を用意 chn,pt:Integer; // 整数数値変数 chn,pt を用意 begin // 使用するサーチエンジンを指定 s_eng := 'goo'; // goo で検索する。 // s_eng := 'infoseek'; // infoseek で検索する。 // s_eng := 'Yahoo!'; // Yahoo! で検索する。 // 表示件数 num := 10; // 10件ずつ表示 // num := 25; // 25件ずつ表示 // num := 50; // 50件ずつ表示 // num := 75; // 75件ずつ表示 // num := 100; // 100件ずつ表示 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 if s_eng = 'goo' then // Goo 検索ページの URL を生成 ⇒ 文字列変数 url に格納 url := 'http://channel.goo.ne.jp/download/search/search.php3?MT=' + word + '&CD=1&SW=1&OS=3&category=1&search_num=' + IntToStr(num) else if s_eng = 'infoseek' then // infoseek 検索ページの URL を生成 ⇒ 文字列変数 url に格納 url := 'http://www.infoseek.co.jp/Titles?=col=SW&lk=noframes&sv=JP&col=SW&qt=' + word + '&tds=0&nh=' + IntToStr(num) + '&st=0' else if s_eng = 'Yahoo!' then // Yahoo! 検索ページの URL を生成 ⇒ 文字列変数 url に格納 url := 'http://search.download.yahoo.co.jp/bin/v_searchf?p=' + word + '&y=y' ; // ↓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;