[English Page]
Back Home |
ローテク集「集」と称していますが、この先内容を増やす予定は立てていません。気が向いたら増やすかも…。
Index
(1) MS Internet Explorer 3.xx (MSIE 3)でソース表示/編集をメモ帳以外で行う方法
[備考] [補足] レジストリをいじる方法として上記#2ではない2つの方法を書いておきます。当然ながらレジストリをいじる作業は慎重に行って下さい。また、作業結果に対する保証も致しませんので、自己責任で行って下さい。
(2) WPS仕様のプリンタを使って、Win95/98のDOS窓からテキストファイルを印刷する方法※WPS: Windows Printing System (いうなれば、DOSやUnixなどからは印刷できず、Windowsを使わないと印刷できないプリンタ。The Microsoft Corporationの商標)Windows95/98マシンを使いながらも、普段DOS窓での作業が多い人の場合、DOS/VにあったPRINT.EXEコマンドが恋しくなるかもしれません。Windowsが流行する前のプリンタの場合、DOS上で PRINT Textfile [CR] とタイプすれば、テキストファイルを直接印刷できました。でもWPS仕様のプリンタではそういうことができません(一部のプリンタはサポートしていますけど)。 サポートしていないプリンタでPRINTコマンド風に印刷したい人は以下のようなバッチを利用すると幸せになれるかもしれません。PRNT.BATと名付ければ懐かしさ256倍 :-) PRNT Textfile [CR] です。ファイル名を入れずに単独でPRNT [CR]としたり、パラメータ -h(または-H, -help, -HELP, h, H, help, HELP)を与えた場合は使用方法が表示されます。 残念ながら、このバッチはオリジナルのPRINT.EXE並みの機能は持っておりませんし、同時に印刷できるファイルは1つだけです。 複数のファイルを扱えるようなバッチも記述しようと思えばできますが、敢えて作る気がしないので書いていません(一例:s-adtxt.lzhと同様な方法でできます)。興味のある方はご自分でどうぞ。でももし作ったなら教えて下さいね :-) 以下の例はWord Pad(Wordpad.exe)を印刷コマンドとして利用していますが、メモ帳(Notepad.exe)を印刷コマンドのように使いたい人はバッチ中の start で始まっている行を start "C:\WINDOWS\NOTEPAD.EXE" /p %1 に置き換えて下さい。但しメモ帳を使った場合には、Word PadのようにWord 6.0文書やRTF(リッチテキストフォーマット)文書の印刷はできませんから、置き換える意味があるかどうかは疑問ですが… ちなみに、C:\WindowsフォルダにあるWrite.exeもWord Padを起動するローダーになっているようなので、 start "C:\WINDOWS\WRITE.EXE" /p %1 と記述してもWord Padでの印刷となります。 ※行の折り返しによって1行の範囲が分かり難い場合のために、文字列[cr]を行末に付加しました。コピー&ペーストで利用される場合は、文字列[cr]を除去して下さい。テキストエディタの置換機能を用いて[cr]を空文字に置き換えるとよいでしょう。 ------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- @echo off[cr]: テキストファイル(etc)をWindows専用プリンタで印刷するためのDOS窓用バッチ[cr] : PRNT.BAT ----- DOS/V用のPRINTコマンドの代わり[cr] [cr] if "%1" == "" goto MSG1[cr] for "%%I" in (-h -H -help -HELP h H help HELP) do if "%1" == "%%I" goto MSG1[cr] if not exist "%1" goto MSG2[cr] [cr] start "C:\Program Files\Accessories\WORDPAD.EXE" /p %1[cr] goto END[cr] [cr] :MSG1[cr] echo 使用方法:%0 File[cr] echo .[cr] echo File = Text, WordPad, Write, Word 6.0 ファイル[cr] echo .[cr] echo ※空白を含んだLongFileNameを使用する場合には、"LongFileName.txt"のように[cr] echo 2重引用符を使うか、LONGFI~1.TXTのようにShortFileNameを使用して下さい。[cr] echo .[cr] goto END[cr] [cr] :MSG2[cr] echo 指定されたファイル [ %1 ] が見つかりません。[cr] echo .[cr] [cr] :END[cr] ------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- (3) MSIE 3.xxでキャッシュフォルダや履歴フォルダのクリアがうまく行かない場合の対処※MS Internet Explorer (MSIE) 3.xxについて記述しますが、多分MSIE 4.xx, 5.xxでも同様だと思います。 MSIEの表示(V)―オプション(O)……(方法 A)、あるいはデスクトップ上のインターネットアイコンのプロパティ(R)……(方法 B)にて行う、キャッシュフォルダのクリアや履歴フォルダのクリアを行なっても、なぜか完全に消えない事があります。恐らく、過去にページ違反などで異常終了した際にキャッシュや履歴の管理情報に不整合が生じる事が原因だと思います。 こんな時はどうすれば良いのかというと、割と簡単です。 別の方法:MSIEを開いている状態なら一旦閉じ、念の為にWindows95を起動し直してからDOS画面上(あるいはMSDOSモード)にて、クリアしたいフォルダ(キャッシュならTemporary Internet Fileフォルダ、履歴ならHistoryフォルダ)を丸ごと消去した後に、MSIEを起動すれば、自動的に新たに全部新規に作り直してくれます。ですが…、一般的には先に示した方法をお勧めします。 (4) <img src="mailto:foo">のようなタグを複数含んだ悪質なHTMLファイルを読み込んだ時にハングアップを防ぐ対策世の中にはWindowsのバグや、HTMLのバグを突いたタグなどを含んだ悪質なWebページが存在します。古くは数百もの深いネスティングをしたテーブルタグを含んだページもありましたし、JavaScriptによってブラウザの新規窓を永久に開き続けてリソース不足によるハングアップを狙うページ、既にパッチの当てられた通称conconバグ(デバイス名を複数含むURLでハングアップするバグ)によるハングアップを狙うページなどは現在も所々にあります。 同様にリソース不足に陥らせる手法として使われるのが、<img src="mailto:foo">タグを数百記述したり、JavaScriptによってmailto:を無数に実行したりする方法です。このページを読み込むと、タグの数だけ、あるいはページを閉じるまで永久にメーラの編集ダイアログが新規に開かれるため、結果的にハングアップに至ります。 Web上にある画像ファイルを無限に読み込ませる手法の場合は、画像を読み込まない設定にしていたり、ある種の規則で画像を排除するローカルプロキシ(例えばJunkBusterなど)で対処できますが、mailto:プロトコルはローカルファイルが起動されてしまうため、その方法が効きません。うっかり“地雷”を踏んだらお陀仏です。 そこで考案した対処例で、少しだけ効果のあった方法を記しておきます。
――バッチの内容―― @echo off rem mailto:プロトコルの多量な実行によるハングアップを回避するバッチ if not exist %temp%\EDITMAIL.* goto STRT if exist %temp%\EDITMAIL.* goto CANCEL :STRT if not exist %temp%\EDITMAIL.* goto MAKE goto STRT2 :MAKE echo flag > %temp%\EDITMAIL.01 goto STRT2 :STRT2 start /w MyMailer.exe %1 if exist %temp%\EDITMAIL.* goto DELFLAG goto END :DELFLAG echo y | del %temp%\EdITMAIL.* goto END :CANCEL echo . echo 処理を打ち切りました。 echo . goto END :END ※バッチ中の"MyMailer.exe"部分だけは、御自身の環境で使われているメーラをドライブ名とパス付きで記述して下さい(例:C:\Program Files\Msgman\Msgedit.exe)。通常は Open を編集する前に書いてあったものを記述すれば良いはずですが、最初の内容がMSIE3の頃のMS Internet Mail&Newsの場合は“rundll32.exe C:\WINDOWS\SYSTEM\mailnews.dll,Mail_RunDLL”となっているはずで、この場合は…どうするのか不明 (^_^;) 作成したBATファイルをエクスプローラで一度だけダブルクリックすると、同名のPIFファイルが同じフォルダ内に作成されます。次にそのPIFファイルをダブルクリックして起動してから、プロパティで[プログラム終了時にウィンドウを閉じる(X)]にチェック、バッチファイル欄に“DOSIME”などと勝手に付加されている場合は不要なので空欄にして、[実行時の大きさ(R)]欄は「最小化の状態]を選んでおいて[更新(A)]、[OK]とすれば作業は終わりです。 Webページで自らmailtoプロトコルタグをクリックしたり、悪質なタグによってmailtoプロトコルが呼出された場合には、常にこのバッチが起動して、同時に開くメーラの編集ダイアログを1つだけに制限してくれるようになります。 ※けれど過剰にmailtoタグを含むページの場合は、バッチファイルが閉じるより開く方が早いため、負けてしまうようです。という訳で完璧ではありません。上記の方法だとMS-DOS窓が多重のプロセスで起動してしまい、閉じるのが遅いと結局それ自身がリソースを消費してしまうので、1つのプロセスだけがメーラの編集窓を監視する様な構造でないと駄目なようです。 ポップアップする広告バナーを閉じるフリーウェア(例:POPKILL)に、わざとメーラーの編集ダイアログを登録する方法も試した所、ポップアップの方が早い場合にはやはり追いつかない様でリソース不足に至ります…。mailtoの呼び出し自体を監視して阻止しないとダメそう…。 [2001-02-25 補足] Proxomitronの場合はHTMLファイルを受信する先から設定したルールでタグを置き換えてしまうため、対処できるようです。 [2003-05-30 追加] 悪質な<img src=mailto:foo>やその他の記述が過剰に含まれるとともに、自身を0秒でリロードするように記述されたWebページの場合は、Proxomitronでさえ追いつかないのか守りきれないことが分かりました。Proxomitronを併用しない場合よりも、メーラが起動されるスピードが若干低下しているように感じられるものの、完全に阻止できません。
結局、リンクをクリックする前にソース表示で内容を確かめる(例えば、WinFAQ:「URL リンクの html ソースを開きたいのですが?」のviewsrc.vbs を利用する)ことが重要で、仮に誤って悪質なHTMLファイルを開いたことに気づいたら、直ぐに[Alt]+[Ctrl]+[Del]によって悪質なコードを含むページを開いているWebブラウザを速やかに強制終了させて(必要ならば、自動リロードされている悪質ページがあるなら、そのあとで再度[Alt]+[Ctrl]+[Del]によって終了させること)から、開いてしまったメール送信画面を閉じていくしかありません。 (5) アプリケーション窓で隠れたデスクトップ上のアイコンに直ぐアクセスする方法下図を見ての通り、最小化した[デスクトップ]ツールバーを用意すると、仮にデスクトップにアプリケーションを広げていても、[>>]部分をクリックするだけで、デスクトップ上のアイコンにアクセスできるようになって便利です。 それに[マイコンピュータ]を辿ると、エクスプローラを明示的に起動せずに任意のドライブのファイルにも辿り着けます。 最小化によりタスクバーを邪魔しない点がミソです。ツールバーが使える様になってから、私はクイック起動バーの代わりにこれを設定しましたが、雑誌などでこういうテクニック?を記す例がなかったので敢えて紹介してみました。
|