Explorerにロードされるhidemaru.exeNo.02187
三月 さん 08/10/11 09:25
 
かなり、特殊な環境のようですが、
持ち出しキットで秀丸エディタも運用してます。
そこで、秀丸エディタの更新をする際に
Explorerにhidemaru.exeがロードされていて上書きできない
と言う現象に遭遇することがあります。
(秀丸エディタ自体が実行中ではないです)
その場合ExplorerをTaskManagerで殺す必要があります。

1.もともとは普通にインストールしていた。
2.その際にShell拡張をしていた。
3.持ち出しキット導入
4.アンインストールした。
5.持ち出しキット環境で運用

という経緯から原因を推察すると、
アンインストールしたときにshell拡張部分が残ってしまい
持ち出しキット環境のhidemaru.exeがロードされてるらしいです。

hidemaru.exeはLAN上のネットワークドライブにおいてあります。

[ ]
RE:02187 ExplorerにロードされるhidemaruNo.02191
秀丸担当 さん 08/10/14 11:00
 

エクスプローラにHidemaru.exeがロードされるというのは通常では無いはずで、
HmShellEx.dll がロードされて上書きできないという可能性はあります。
上書きできないのは HmShellEx.dll のことではないでしょうか。

HmShellEx.dll は、コンテキストメニュー直下に「秀丸エディタで開く」を出す
ためのDLLです。
「Shell拡張」と言われているのは、この機能のことでしょうか。
あるいは、別のツールなどのことでしょうか。

HmShellEx.dll だとしたら、持ち出しキットでこれが動くのはおかしいので、調
べる必要があるかもしれません。

別のツールがHidemaru.exeを読み込んでいるとしたら、どうしようもないです。

[ ]
RE:02191 ExplorerにロードされるhidemaruNo.02195
三月 さん 08/10/14 15:57
 
>
>エクスプローラにHidemaru.exeがロードされるというのは通常では無いはずで、
>HmShellEx.dll がロードされて上書きできないという可能性はあります。
>上書きできないのは HmShellEx.dll のことではないでしょうか。
>
>HmShellEx.dll は、コンテキストメニュー直下に「秀丸エディタで開く」を出す
>ためのDLLです。
>「Shell拡張」と言われているのは、この機能のことでしょうか。
>あるいは、別のツールなどのことでしょうか。
>
>HmShellEx.dll だとしたら、持ち出しキットでこれが動くのはおかしいので、調
>べる必要があるかもしれません。
>
>別のツールがHidemaru.exeを読み込んでいるとしたら、どうしようもないです。

Hidemaru.exeがロードされるという判断は、秀丸を終了したのに
インストーラ(hm710b8_signed.exe等)の中身をLHAUTとかで開いて
インストール先を上書きするときHidemaru.exeが上書きできないと
言う状態になることから判断しました。
TaskManagerでみてもHidemaru.exeはいないのに上書きができないのです。
http://www001.upp.so-net.ne.jp/yamashita/product/pwexp/pwexp.htm
ProcessWalker Express で見るとExplorerがHidemaru.exeを握ってました。

そこで、explorerを殺して起動しなおしてやると上書き可能になります。

explorerを起動しなおした状態をProcessWalker Express で見ると
Hidemaru.exeはロードされてないのですが、Explorerで右クリックを
した(コンテキストメニューをひらいた)らHidemaru.exeがロードされました。
HmShellEx.dll でないってことはShell拡張ではないのでしょうかね。

Hidemaru.exeがロードされるってのは何かデバッグ機能がロードされて
いるのかも。
(ExportしてるのがDebugExportだけみたいだし)


LANドライブにあるのも要因なのかも。普段、マシンは休止状態にするので
再開後にExplorerが挙動不審になる可能性も否定できないような。

[ ]
RE:02195 ExplorerにロードされるhidemaruNo.02196
秀丸担当 さん 08/10/14 16:48
 

>Hidemaru.exeがロードされるという判断は、秀丸を終了したのに
>インストーラ(hm710b8_signed.exe等)の中身をLHAUTとかで開いて
>インストール先を上書きするときHidemaru.exeが上書きできないと
>言う状態になることから判断しました。

そうでしたか。
だとすると、HmShellEx.dllではなく、Hidemaru.exeがなぜかロードされている
ようですね。

>explorerを起動しなおした状態をProcessWalker Express で見ると
>Hidemaru.exeはロードされてないのですが、Explorerで右クリックを
>した(コンテキストメニューをひらいた)らHidemaru.exeがロードされました。

ということは、HmShellEx.dllがロードされ、その中でさらにHidemaru.exeを
ロードしているという可能性もあるかもしれないですが、そういう作りにはなっ
ていないはずなので、謎です。

大変危険ではありますが、レジストリをいじってコンテキストメニューハンドラ
を1つ1つ有効にしたり無効にしたりすると、犯人がわかるかもしれません。
レジストリエディタで、
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
を見ると、コンテキストメニューハンドラが確認できます。

少々反則的な方法ですが、たとえばここのclassidに相当する値が
{6589F891-14C5-463f-A4A2-1FBBBD592A12}
というようになっていたら
x{6589F891-14C5-463f-A4A2-1FBBBD592A12}
というでたらめな値にすると、無理矢理無効になるようです。
後から x を消せば元に戻せるのでレジストリから消すよりかは比較的安心です。

犯人のclassidが分かったら、HKEY_CLASSES_ROOT\CLSID 配下から該当classidを
検索すると InProcServer32 というキーの中にDLLファイルが書かれているので、
それがロードしているということになります。
それがHmShellEx.dllだとしたら、秀丸エディタが悪いです。

もしこの方法で試される場合は危険なので充分に注意してください。

[ ]
RE:02195 ExplorerにロードされるhidemaruNo.02200
アルビレオ さん 08/10/15 00:33
 
ユーザーのアルビレオです。

ひょっとすると、程度の推測でしかないんですが

>explorerを起動しなおした状態をProcessWalker Express で見ると
>Hidemaru.exeはロードされてないのですが、Explorerで右クリックを
>した(コンテキストメニューをひらいた)らHidemaru.exeがロードされました。

これは実行ファイルとしてロードしているというより、リソースからアイコンイ
メージを読み込もうとしているのではないでしょうか。
「送る」メニューを開いたときならともかく、コンテキストメニューだけで読み
込まれるというのはちょっと違う気もするけど、「実行ファイルのロード」より
はありそうな話です。
そのとき読み込み失敗か何か不都合が起こって、見た目は正常に動いているよう
に見えるけどHidemaru.exeはオープンされたままになっている、みたいなことが
起きているんじゃないかなぁと思います。

[ ]