SSブログ
RSS [RSS1.0] [RSS2.0]
共謀罪を含む改悪組織犯罪処罰法は
【「共謀罪」法 衆参両院議員の投票行動(東京新聞 2017/6/16)】

ネット上の辞書サービスをテキストエディタから使う方法

 テキストエディタで文章を書いている時に単語の意味を調べたくなることがある。辞典のCD-ROMを買ってインストールすれば良いのだろうし、我が家にはWindows 98のパソコンに付属していた「マルチメディア統合辞典(Bookshelf Basic)」もある。しかし、インターネット上に辞典があるのだから、そちらを使った方がCPU能力が低いパソコンには優しいかもしれない。ただ、Firefoxを立ち上げて、辞典を提供しているサイトを開いて、調べたい単語を入力して、検索ボタンをクリックするのは手間がかかる。辞典のCD-ROMを買ってインストールしてしまえば、調べたい単語を選択してからショートカットキーを使って調べることができるだろう。それと同じことをネット上の辞書サービスを使って行ないたい思った。
 もしかしたら、既にフリーウェアがあるのかもしれないが探し方が下手なせいか見つけられなかったのでバッチファイル(テキストエディタで以下の引用部分のように記述して拡張子を「.bat」にして保存したファイル)を作った。(追記(2011/12/29):文字コードは気にしてなかったが、SHIFT-JISで作成。試しにUTF-8、UTF-8N、EUCでファイルを保存して実験したら動作しなかった。)

 まず、私が使っているテキストエディタはTeraPadである。TeraPadはツールの設定で他のアプリケーションを登録しておくと、ショートカットキーでそのアプリケーションを起動することができる。単にアプリケーションを起動するだけではあまり意味がないので、通常はTeraPad上で処理するためのツールを登録する。私は日時を挿入できる「TpTime」と便利な機能がツールバーに追加される「TpBPlus」を登録してある。そこに自作のバッチファイルも登録してみた。実行ファイルの他にコマンドラインパラメータを設定できるので、コマンドパラメータとして「選択テキスト(%s)」を選んで「"%s"」とした。これをバッチパラメータとして利用する。バッチファイルの記述は次のようになった。

for /f "delims=" %%A in (%1) do set AA=%%A
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" "http://www.weblio.jp/content/%AA% " "http://dictionary.goo.ne.jp/srch/all/%AA%/m0u/ " "http://dic.yahoo.co.jp/dsearch?&enc=UTF-8&dtype=2&p=%AA% "
exit
(追記(2012/1/6):Firefox 9.0.1 が起動してない状態でバッチファイルを利用すると、Firefoxが真っ白な画面で起動し、その後にホームもブックマークも機能しないトラブルが生じた。weblio、goo、yahooのURLの最後に半角スペースがあればトラブルは起こらなかった。)

 「%AA%」の所に辞書で調べたい単語が代入される。TeraPadで選択したテキストである。ブラウザはFirefoxを使った。辞書サイトはWebliogoo辞書Yahoo!辞書を一度に開くようにした。
 テキストエディタに書いてある単語をGoogleで検索したいこともあるので、そのためのバッチファイルも作った。

for /f "delims=" %%A in (%1) do set AA=%%A
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" "http://www.google.co.jp/search?q=%AA%&hl=ja"
exit
(追記(2011/12/29):「&hl=ja」は無くても動作するはずだが、無いと次の問題が生じる。Firefox 9.0.1 が起動してない状態で「ヌード」という文字列の検索でバッチファイルを利用すると、Firefoxが真っ白な画面で起動し、その後にホームもブックマークも機能しないトラブルが生じた。「&hl=ja」で無くても半角スペースがあればトラブルは起こらなかった。)

 さて、私はFirefoxの検索バーのデフォルトはGoogleにしてあって単語を選択して右クリックでメニューから「Googleで検索」を選んでいる。別のプロファイルで開く場合は別の検索バーにしてあるので、右クリックで表示されるのはその検索バーで検索するメニューである。どちらも辞書ではないし、後者はGoogleでもない。私はブラウザで閲覧している時に辞書で調べたくなったり、検索バーがGoogleでない時にGooleで検索したくなることがある。Weblioではブックマークツールバーに登録すればクリックするだけで検索できるようになる(参照)のだが、辞書で調べたいと思うのはブラウザを使っている時だけではなく、ExcelやAdobe Readerなど他のソフトを使っている時にもある。それらでも、クリックやショートカットキーなど簡単な操作で調べるようにできないかと思い、バッチファイルを作った。
 TeraPadのときのように、選択テキストをバッチパラメータとして利用できれば良いのだが、難しそうなのでいったんクリップボードへコピーすることにして、クリップボードの情報をバッチパラメータとして利用することにした。
 Windows XPに備わっている「clip.exe」(参照)や「clipbrd.exe」(参照)ではできないようだったので、「cliputil」を使うことにした。Windowsに標準で備わっていても良いはずだが…。
 バッチファイルは【バッチファイル内でクリップボードから文字列を取り出す】を参考にして次のようになった。

for /f "delims=" %%A in ('cliputil.exe -paste') do set AA=%%A
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" "http://www.weblio.jp/content/%AA% " "http://dictionary.goo.ne.jp/srch/all/%AA%/m0u/ " "http://dic.yahoo.co.jp/dsearch?&enc=UTF-8&dtype=2&p=%AA% "
exit
(追記(2012/1/6):Firefox 9.0.1 が起動してない状態でバッチファイルを利用すると、Firefoxが真っ白な画面で起動し、その後にホームもブックマークも機能しないトラブルが生じた。weblio、goo、yahooのURLの最後に半角スペースがあればトラブルは起こらなかった。)

 「cliputil.exe」の所は実際はフルパスで記述している。「clipbrd.exe」を使う時のようにファイルの保存場所を気にせずに「'cliputil -paste'」とする方法もあるはずだが、私の場合はコマンドプロンプトや「ファイル名を指定して実行」では使わず、バッチファイルでしか使わないのでフルパスを記述することにした。(追記(2013/12/17):フルパスでは"Program Files"などと半角スペースを含むと動作しないようです。何らかの工夫が必要ですが、"Program Files"と同じディレクトリに"Programs"などと半角スペースを含まないフォルダを作成して、その中にcliputilを入れたほうが良さそうです。)
 Googleで検索するのなら次のようになる。

for /f "delims=" %%A in ('cliputil.exe -paste') do set AA=%%A
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" "http://www.google.co.jp/search?q=%AA%&hl=ja"
exit
(追記(2011/12/29):「&hl=ja」は無くても動作するはずだが、無いと次の問題が生じる。Firefox 9.0.1 が起動してない状態で「ヌード」という文字列の検索でバッチファイルを利用すると、Firefoxが真っ白な画面で起動し、その後にホームもブックマークも機能しないトラブルが生じた。「&hl=ja」で無くても半角スペースがあればトラブルは起こらなかった。)

 こんなことをしたいのは私だけだろうか。誰かが作ったフリーウェアを使わせてもらおうと思ったのだが見つけられなかった。それでバッチファイルを作る勉強にもなるので自分で作った。今回は「start」の後に「""」を抜いてはいけないことを学んだ。「start "" 」無しでも動くのだが、開いたブラウザを閉じるまでコマンドプロンプトが消えないので「start」を入れた。しかし、「start」だけでは次の「""」で囲まれた部分(Firefoxの起動を命じる部分)が「コマンド」ではなく「タイトル」と認識されてしまって、その次のURLが規定のブラウザ(IE8)で開いてしまう。そこでタイトルを「""」と入れる必要がある。勉強になった。
 「"delims="」の必要性も学んだ(参照)。

 最後に大事なことを書いて置かないといけない。作ったバッチファイルの置き場所はどこでも良いが、ショートカットをタスクバーの「クイック起動」に入れて置いた方が良い。そうすれば、調べたいテキストを選択して右クリックのメニューやショートカットキーでコピーしたら、クイック起動内のアイコンをクリックするだけで調べることができる。Windows 7のことは知らないが、Windows XPでは作ったバッチファイルを「クイック起動」に入れて置いた方が良い。
 Windows XPではショートカットをスタートメニューに入れておくとキーボードショートカットも利用できるらしい。マウスだけの操作が良いのなら「クイック起動」にショートカットキーで操作したいのならスタートメニューに入れると良いだろう。

 以上、興味のある人は真似してみてほしい。私は、この記事を書く間に今回作ったバッチファイルを何度も使った。やはり便利である。もしも「cliputil」など新しいソフトをインストールしなくても済む方法があれば教えて欲しい。そちらの方がスマートであれば、そちらを利用したい。

追記:
 頻繁に次のようなエラーが出る。原因を探している最中。困った。

エラーメッセージ

追記:
 ページ読み込みエラー「アドレスが見つかりません」の問題について、次のページにある対策では効果がなかった、というか、既に「network.dns.disableIPv6」は「true」にしてあったし、「ローカル エリア ネットワーク(LAN)の設定」ダイアログボックスのチェックは全てはずしてあった。すなわちエラーが出る前から対策済みだったが、上のバッチ処理ではエラーが頻発した。

 もう一つ、問題解決のヒントになりそうな情報として、同じプロファイルでFirefoxが起動している状態ではエラーにならないような気がする。Firefoxが起動してなかったり、別のプロファイルでFirefoxが起動している状態ではエラーが頻発する。
 また、startコマンドで「/wait」を付けるとエラーにならないような気がする。ただし、コマンドプロンプトが自動的に終了しないので、この対策は却下。startコマンドを使わない方法も同様に却下。
 さらに、一度エラーが生じると、googleのトップページなど、全てのサイトが同じエラーで開かない。別のプロファイルでは接続できる。エラーが出たプロファィルを終了しないまま同じプロファイルで起動しても、どのサイトにも接続できずに同じエラーになる。終了してからなら接続できる。
 要するにFirefoxをネットに接続できずに起動した状態で指定したアドレスを開こうとしてエラーになっている感じである。その接続できてない状態は、そのプロファイルでのFirefoxtを終了しない限り続いている感じである。実際、Firefoxが起動するのはコマンドプロンプトが閉じた後。すなわちバッチ処理が終了したと認識した後である。メモリー内で処理しているのだろうが…。

追記:
 Firefox3.0ではなくIE8を使えば問題は生じないようだが、複数のサイトを開くときには、それぞれにstartを指定する必要があり、残念なことに同じウィンドウの別のタブで開くことができず、それぞれが新しいウィンドウを開いてしまう。したがって、IE8を使う方法も却下。エラーが頻発するFirefoxよりはましだが…。
 Firefoxを3.5にバージョンアップした場合は試してないが、バージョン3.5は私の低スペックマシンには重そうな気がするのでバージョンアップはしない。バージョン3.0での解決を目指す。

追記:
 やはりFirefoxの起動が不十分だったことがページ読み込みエラー「アドレスが見つかりません」の原因だったようである。スマートではないが、一つの解決策が見つかった。【Firefox Preloader】を先に起動しておけば良い。「Firefox Preloader」の情報は【Firefoxの起動を大幅に高速化!「Firefox preloader」】。「Firefox Preloader」を起動すると一緒にFirefoxが起動するようである。ただし、ウィンドウは開かず、タスクマネージャを見れば「firefox.exe」が起動していることが分かる。そして、「Firefox Preloader」を終了するとFirefoxも終了する。メモリー不足でFirefoxを常駐させられない人にはお勧めできない。
 通常は「Firefox Preloader」のショートカットをスタートアップフォルダに入れて、パソコンの起動直後に自動的に起動する。バッチファイルでFirefoxの起動前に「Firefox Preloader」を起動させる方法を試したが、エラーは同じだった。「Firefox Preloader」の動作は間に合わなかったらしい。
 また、バッチファイルで「tskill」や「taskkill」を使ったりタスクマネージャを使ったりして「Firefox Preloader」だけを終了させることはできるが、その後はFirefoxを終了してもタスクマネージャのプロセスから「firefox.exe」は消えない。常駐したままになる。タスクマネージャから「firefox.exe」を終了すると不正な終了になり、次回の起動で注意される。「Firefox Preloader」を再び起動して終了させる方法で正常に終了させた方が良い。
 まとめると、このエントリーのバッチ処理におけるページ読み込みエラー「アドレスが見つかりません」の原因はFirefoxの起動が不十分な状態でサイトを開こうとしたためで、パソコン起動時からFirefoxを常駐させる「Firefox Preloader」を使えばエラーを防げる。この「Firefox Preloader」は通常と異なる使い方をするとトラブルの元になるので、パソコンを終了させるまで常駐させて置いた方が良い。そして、パソコンを終了する前にFirefoxを完全に終了させる必要があるときは、「Firefox Preloader」を終了させる方法を使わなければいけない。
 Firefoxの起動が速くなったと評判のFirefox 3.5 以上では、このエントリーのバッチ処理におけるページ読み込みエラー「アドレスが見つかりません」は生じないのかもしれない。


nice!(0)  コメント(0)  トラックバック(0) 
カテゴリー:サイトを見て
共通テーマ:パソコン・インターネット

読者の反応

nice! 0

sonet-asin-area

コメント 0

コメントを書く 

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。
captcha

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。