undonut+mod

こちらのundonut+置き場にある

unDonut r13 test+4

の勝手修正物です。基本的に、気が向いたときにバグとりしたもの。 (継続サポートは期待しないでください)

まだまだバギー、人柱用です。

環境によりますが xp や win2k なら undonut r13test10 のほうがまだ使える状態に思えます。
unDonut+ は、r13test1付近のソースからの派生のためtest10にくらべ機能ダウンしている部分もありますし。

ファイルは

 unDonut.exe      32bit版.
 64unDonut.exe     64bit版.

.exeのみなので、すでにインストール済みの unDonut r13 test+4 の実行環境に exeを上書きしてください。

※ +にて、ini ファイルの一部が本家unDonut非互換になっているかも(項目名のtypo修正があったので)
本家undonutの環境に上書きした場合おかしな挙動が出るかもしれません。(Undonut.iniを捨てればokかも)

一応動作対象は win2k,xp,vista です。
win9x系では動きません。
(コンパイルは Visual Studio 2005 + WTL8.0 で行っています)

64ビット版は、警告に従ってコンパイル通したら動いてしまっただけのものなので、 いろいろ不具合ありそう。
実験品。
当然プラグインも64ビット版にしないと駄目。
32ビット版とは別フォルダにインストールしてください。

※ オプションのツールチップヘルプの表示に msxml3.dll か msxml4.dllを使います。
ない場合はonにしても表示されません。
(WinXp以降ならば msxml3が標準である入ってる模様?
w2kの場合は、MSのサイトから msxml?.dll を入手すれば)

※ unDonutが正常終了しなかった場合、unDonut.ini (や他のini, dfg)が 腐ることがある?模様.
変なエラーが出る場合、 unDonut.iniを消して設定しなおすと、症状が治ることがあるかもしれません...

その他

一応……
このソフトによってどのようなトラブルが発生しようとも 原著者&改変者は一切責任を負いません。
使用にあたっては、自己責任でお願いします。

その他、unDonutの事情や配布条件等は、undonut+4に入っているもの(doc/あたり)を確認してください。


私個人は主に 自宅 vista64(ie7), 職場 xp32+ie6 という環境で、 ie と半々くらいの割合で使用といったところです。

unDonut を使いこなしているとはいいがたく使ったことのない機能もたくさんで、 なかなか不具合に気づいていなかったりします。
ソースもまだまだよくわかっていない状態。

バグ報告をしていただけるようでしたら、

を覗いているので、そちらでしていただけると助かります。
(ただ申し訳ないですが、アクティブな人間ではないので レス等はあまり期待しないでやってください。 バグが取れた版がでたらそれが返事と)

そのとき+modバージョンや使用os&ieバージョンを示していただけるとありがたいです。


変更履歴

2007-12-10	+.mod.1.16
・検索バーで直接入力した(フォーカスが検索バーにある)場合は、範囲指定のテキスト
 よりも入力された文字列が使われるように修正.
・http://donut.blog.shinobi.jp/Entry/4/にてRapt氏が書かれているDonutRAPTの
  メモリーリークは unDonut でも同様に残っていたので修正.
・Donutのオプション→全般2→…配置場所を入れ替える、にしていた場合、ゲージの
 描画が残ってしまうことがあったのを修正。

2007-12-02	+.mod.1.15b
・お気に入り(.url)を新規窓で連続開けするとハングする場合があったのを修正.

2007-12-01	+.mod.1.15
・+mod1.13での修正は不適だった、エクスプローラのお気に入りが何も表示されない
  ことがある件を修正(実際には"エクスプローラバーのキャッシュを作成する"にして
  いた場合 次回起動で必ず発生だった. r13test(10)でも再現のよう)
・+mod1.14の修正が不適だった ページ無しでdonutのオプションを開いた時のカーソル
  初期位置がおかしい件 を改善 (けどまだおかしいことがあるかも?)
・新規窓が開くときabout:blank化する件を強引に対処 (未対応部分あり.また不具合の
  本質は未解決)

2007-11-26	+.mod.1.14b
・+mod.1.13でエンバグして"テキストを開く"で1つしか開かなかったりハングする
 ことがあったのを修正.

2007-11-26	+.mod.1.14
・+mod.1.13でエンバグしてIEのオプション設定を呼び出せなくなってたのを修正.
・+mod.1.13でスタートページの表示中に終了するとエラーになる場合があったのを修正.
・iniファイルの排他制御をした影響でundonutの複数起動がまともにできなくなって
 いたのでとりあえず排他制御を緩めて複数起動ができるように.
・ページ無しでdonutのオプションを開いた時のカーソル初期位置がおかしい件を修正.
  (※2007-11-27 不十分だった模様)
・新規窓が開くときabout:blank化する件で、せめてアドレスバーだけでもなるべく
 about:blankに化けないように強引に回避(本質的には未解決)

2007-11-23	+.mod.1.13
・自動更新時に"進む・戻る情報"も保存するようにしていると特定環境にて特定のWEB頁
 が対象にあるとハングする件、を修正。
・WEB検索時、頁内に範囲指定があれば、その指定された文字列を検索文字列に設定
 して検索するようにした。
・リンクが全くないページでホールクリックしてもオートスクロールにならない
 件を修正.
・拡張プロパティで検索設定されたインターネットショートカットで検索したとき、
 検索バーの履歴に入らなかった件を修正。
・mod.1.12にて特定環境(IE7?vista?)でエクスプローラバーが"お気に入り"になって
 いる状態で起動すると項目がない状態になってしまう(一旦別の頁をあけてからあけ
 直すとok)状態だったのを強引対処.
 (※ 2007-11-25 頻度が減っただけのようでまだたまに発生の模様)
・プログラム内で使うメッセージIDの値を一部変更→その影響で Option.xml 中の番号も
 一部変更.(修正した Option.xmlを別途配布)
・64ビット版のウィンドウクラス名をWTL:DonutからWTL:64unDonutに変更。
 (32ビット版とは別アプリとして扱えるように)
・その他諸々.

2007-11-17	+.mod.1.12
・自動更新関係の不具合改善(まだハングする場合があり):
 ・dfgファイル書換最中に他のdfg更新があるとハングしてたのを回避.
  (自動更新用の排他制御は無くし、かわりに全てのiniファイルのアクセスで
   排他制御を入れてみた... 他に影響があるかも?)
 ・自動更新で前回の更新が残っていた場合は、前のを強制終了していたが、強制終了
  自体が問題多そうなので、終わるまで待つ(パス)するように変更。
 ※"進む・戻る情報"も保存する場合、特定環境(IE7?マルチコア?)にて特定のWEB頁
  (おそらくframeが使われている頁)が対象にあるとハングする件は未解決。
・複数起動しない設定で最大化(フルスクリーン)時、頁を外部(アプリ)から開いた場合
 に最大化が解除されてしまう件を修正 (履歴バーから開いた場合もこれに相当)
・donutのオプションで他のボタンを押す前にSHIFT+TABすると、項目移動せずに
 窓のフォーカスが外へ移ってしまう件を強引対処.
・パネルバーで、中クリックした時がまだ不具合状態だったのを修正.
・進む・戻るの履歴保存をエンバグして戻るも進むでセーブしてたのを修正。
・検索バーでCTRL+RETURNして頁内前方検索したときにエラー音が出る件を強引対処.
・ユーザー設定のフォルダ指定で、unDonut.exeのあるフォルダからの相対パス指定
 を記述できるようにした.
・+mod1.5で改造した拡張プロパティの設定で、インターネットショートカットだけ
 でなく検索エンジンの設定でも、FrontURL,BackURL等の設定を行えるようにした。
 検索エンジン設定で "アドレスバーの文字列を使用"にチェックを入れた場合は、
 検索バーが空の時のみアドレスバーよりURLを取得。
 また、これに絡んで.url中の記述を+mod1.5での仕様を変更、[unDonutSearch]を
 やめて通常の拡張プロパティの[unDonut]に一緒に設定するようにした
 (Search.iniでの設定と同様にするため)。
 それと AddressBar= を ExPropOpt= に変更. (今は0,1のみ。後で拡張予定)
 またこの検索設定は拡張プロパティのon/offの影響をうけないことにした.
・64undonut.exeのアイコンを32ビット版とは別のものにした.
・その他諸々.

2007-11-12	+.mod.1.11b
・mod.1.11にてスクリプト/プラグインがiniに書き込むapiを使うとゴミを書き込む
 (キーと値を逆に出力. iniが壊れる)というエンバグをしてしまったのを修正. m(_ _)m
(が、まだスクリプト関係おかしいかも?しれません)

2007-11-10	+.mod.1.11
・ツール→スタイルシート→で、不要になっていた2項を削除.
・マウス中ボタンでリンクをクリックしたときに、自動スクロールの機能が有効に
 なってしまう件を改善.
・Default.dfg自動更新でたまに起こるらしい書込不具合の改善.
 ・更新の時にDefault.dfg.bakとして一つ前のモノを残すようにした.
 ・(同一フォルダの) undonut.exe を複数立ち上げてた場合の排他制御の修正.
  (クリティカルセッションでなくMutexに変更. 手抜きでフォルダに関係なく起動
   されているunDonut.exe全てに影響するが、実用上は問題ないはず)
  ※ただ複数の実行で1つのDefault.dfgに自動更新するのはあまりよろしくない
   状態なので、自動更新する時は複数起動禁止にしてるほうが安全かも.
 ・自動更新時、前回の自動更新がすんでいない場合、前回の更新処理を即強制終了
  していたが、3回目(1分指定の場合3分)までは待つように変更.
・+mod1.3にて頁内検索の改造で、検索バーのカーソル位置にある単語を取得する
 ようにしたが、行末にカーソルがあった時は最後の単語を選択としていたのを
 先頭の単語を選択するように修正.(以前のunDonutに近い動作になるはず)
 (ちなみに空白の場合は右方向にある単語を取得)
・その他諸々.

2007-11-03	+.mod.1.10b
・ニケ氏の報告にあった atlhostex.h のincludeをなんとかしてみた。
  ※スクリプトエラーの時ダイアログを開いていたのがステータス表示になる模様.
  ※ 1.10としてアップしたものは、実はatlhostexがちゃんとincludeされていない
    ものでした。コンパイルしなおしたものを 1.10b とします.

2007-10-28	+.mod.1.9
・オプション→プラグインで、ToolBarタイプのプラグインが、チェックマークを
 つけても反映されていなかった件の修正。
・オプション→全般2→"プログレスバー"と"プロキシの切り替え"の交換と
 領域サイズ指定が機能していなかったのをとりあえず修正。
 (切り替えた時の表示がこれでよいかは?)
 (あと他の全般2のオプション設定もエンバグしてたかも?)
・ニケ氏の情報より、undonut+4の段階で(オプション)ハング調査用の
 チェックルーチンが追加されてたらしく、これが入ってから、
  "このシステムではこの関数はサポートされてません。"
  "指定されたリソース名がイメージファイルに見つかりません。"
 というエラーダイアログが出るようになったとのこと、なので、
 そのチェックルーチンを外してみた。
 (エラーコードが返ってきていること自体を放置していいのかは、
 わかんないので後回し)

2007-10-28	+.mod.1.8
・unDonut Part16 スレ 149氏による修正(DialogHook.h,DialogKiller.h)を反映。
  IE7にてActiveXをOFFにしてると「警告ダイアログを自動的に閉じる」を選択
  していても警告ダイアログが自動で閉じない件の修正。

2007-10-27	+.mod.1.7
・mod1.4でささいな書き換えでエンバグして、オプションのマウスジェスチャの
  設定がクリアされてしまっていたのを修正。
・オプション→全般2→ステータスバーの第一領域サイズの設定が反映されない件
  の修正... undonut+1にて、わざと 0に設定している模様。ただなぜそうしたのか
  わかってないので、とりあえずプログラム的に復活してみた...(が違いがあるのか
  よくわかってない)
  ※追記:ぜんぜん駄目だった。1.9にて修正。

2007-10-26	+.mod.1.6
・実は msxml6.dll は非対応だった.オプションのツールチップヘルプ表示に
  msxml?.dllが使われるが、msxm6がある場合、先に 6 があれば 6を使うため、
  msxml3,4があっても 表示が出なくなってしまっていた。
  msxml6を使わないことで対処(msxml3,4のみの対応となります)
・mod1.3での未初期化変数の0クリアによって、
  ページ内での文字列|リンクのドロップ検索
  (オプション→マウス→ページ内ドラッグドロップ→即検索orリンクを開く 設定時)
 が機能しなくなっていたのを暫定対処

2007-10-25	+.mod.1.5
・フルスクリーンで終了した時の次回起動で中途半端な状態に化けていたのを修正。
・オプション等のメニューでのタブキー移動順を修正。
・実験改造: リンクバーでの使用を前提に、インターネットショートカットの
  拡張プロパティとして、検索設定を記述できるようにしてみた。
  インターネットショートカット(.url)が、拡張プロパティon状態のとき、

  [unDonutSearch]
  AddressBar=0 or 1 (0なら検索バー 1ならアドレスバーの文字列が対象)
  Encode= 0〜3
  FrontURL=サーチエンジンのURL前半
  BackURL=サーチエンジンのURL後半
  FrontKeyWord=キーワードの前に付加する文字列
  BackKeyWord=キーワードの後に付加する文字列.
  ※ AddressBar以外は Search.ini の記述と一緒なので、そちらを参考のこと。
     FrontKeyWord,BackKeyWordは nogui.txt に説明あり。

  のような記述があれば、検索バーに文字列(AdressBar=1ならURL)が設定
  されていると、本来のURLの代わりに検索用のURLを使う。

 ※ 一応、拡張プロパティのメニューで設定できますが、Search.iniから
   .urlへこぴぺしたほうが楽かも。

 また、リンクバーに上記の検索拡張されたショートカットがある場合は、
 文字列をドロップ(検索)できるようにしてみた。

・その他こまごま書換。



2007-10-16	+.mod.1.4
・オプションのプロキシ設定が毎度初期化されてしまう件の修正。

2007-10-14	+.mod.1.3
・ハングの軽減...?してたらいいな...未初期化変数対処。
  ためしに new, malloc で、必ず領域を 0クリアするようにしたところ、
  何箇所かで NULLアクセスエラーを検出... つまり、当たり所が悪いとハング
  等してたかも。
  とりあえず、そのルーチンのまま、NULLアクセス回避するようにして対処。
  ※逆に、たいてい0以外でほぼ正常に動いていた機能が、確実に動かなくなる
   バグになることも...というかそっちのほうが多い?
・undonutのオプション→マウス→"<<"ボタンを押した時機能してなかった?件を修正。
・Web頁表示無しでクリップボードを表示して、F4でオプションを出そうとすると
  (他のボタンもだけど)何も反応しなかった件を修正。
・+でのIE6(WIN2K?)の検索でfindText関係の不具合対策が、どうも Vista64,Xp64で
 ページ内検索をすると2つ目以降に移動しない、というバグの原因になっていた
 ようなので、とりあえず、Xp 以降の場合はこの処理をしないようにしてみた
 (他のXpで駄目だったら駄目のときで)
・実験:ページ内検索の時、可能なら検索文字列のエディットボックス内のカーソル
 位置の単語を検索するようにしてみた。(通常は先頭の単語). (ただ Xpビジュアル
 スタイルでの不具合対策は微妙なので、全角文字等をさがすときは、あらぬ単語を
 検索する可能性あり....)


2007-10-08	+.mod.1.2
・msxml4(x64では6)必須だったのを, msxml3,4,6 の何れかがあればそれを
 使うように修正。
・レジストリにあるリンクバーのフォルダ名情報に'""'が入っていた場合の対処.
・ソースレベルで細々変更?
  ※ソースはちと中途半端な状態なので、後で別配布します...
・CChildFrmの窓属性設定の処理で、属性を一つoffしそこねる部分があったのを修正。

※追記:mod.1.2のバイナリは、ちと不安定な環境(vc7+v8のpsdkヘッダ)で
  コンパイルしたものだったので1.1よりまずくなってた可能性あり。


2007-08-30	+.mod.1.1
・リンクをマウスの中ボタンクリックで開いたとき、同じものが2頁開いて
  しまう件をとりあえず1つだけ開くように変更(したつもり)。
  (ただ、中ボタンクリックの状態によっては、本来の中ボタンクリック
   の機能が効いてしまいイマイチよろしくないかも)
・ソースレベルで細々変更。

2007-08-26	+.mod.1
・x64コンパイルができたので、アップロード。
・vistaで リンクバー が壊れることがある件の対処(リンク\ → links\)