添付ファイルの関連付けNo.49867
水銀灯 さん 16/05/17 23:26
 
いつもお世話になっております。
もう一つ質問があります。添付ファイルjpgを開こうとすると「常にこのアプリを使
って…」のチェックボックスがOFFになり、関連付けのダイアログが表示されます。
エクスプローラから開く場合は、正しく関連付けされたアプリが起動されます。
Win10側の問題かも知れませんが、よろしくお願いいたします。

[ ]
RE:49867 添付ファイルの関連付けNo.49868
秀まるお2 さん 16/05/18 11:31
 
 こちらでもテストしてみたんですが、1回その問い合わせが出たんですが、
2回目以降は出なくなりました。

 秀丸ファイラーで開く場合も、1回目は出たんですが、2回目から出なくなっ
て、最初に選んだ「フォト」で開くようになりました。

 アプリごとに、何で開くか覚えてるのやら?

 2回目以降も毎回聞いてくるのでしょうか。

 この辺の仕組みについて、ネット検索するなどして調べてみます。

[ ]
RE:49868 添付ファイルの関連付けNo.49869
水銀灯 さん 16/05/18 12:21
 
念のため旧バージョン 6.48 6.45 6.26も試しましたがダメでした。
もしかしたらPhotoビューワーを使えるようにレジストリを書き変えた影響かも知れ
ません。
http://www.cat-ears.net/?p=40173

[ ]
RE:49869 添付ファイルの関連付けNo.49870
秀まるお2 さん 16/05/18 14:52
 
 そこにあるレジストリ書き換えをしてWindowsフォトビューアーに関連づけし
てみたんですけども、一応こちらでは大丈夫みたいです。

 Windows10のマシン2台で試して両方OKのようです。.jpg添付ファイルをダブ
ルクリックして、普通にWindowsフォトビューアーが起動するようです。

 レジストリの書き換え方が僕と違うかもしれないので、念のためこちらで作成
したレジストリをアップロードしてみました。

  http://hide.maruo.co.jp/software/bin3/windows-photo-viewer-registry.zip

 それを解凍して出てくる.regファイルをダブルクリックすると、なぜか1回目
はRuntime errorみたいなのが出て、2回目に成功します。???

 その後、秀丸ファイラーから.jpgファイルを選択してマウス右ボタンメニュー
から「プロパティ」を実行し、「プログラム:」の右側の「変更(C)...」ボタン
を押して、「その他のアプリ」からWindowsフォトビューアーを選択しました。

 もし何か僕の所と操作方法が違ってる場合は、上記のようなやり方で関連づけ
をもう一回やり直してみてほしいです。



---------------------------------------------------------------------

 ソースコードをトレースしてみたら、添付ファイルをダブルクリックした場合
に開く方法は、Windowsの「ShellExecute」っていうAPIを呼び出してるようです。

 秀丸マクロのopenbyshellも同じ方式なので、たとえば

    openbyshell "c:\\test.jpg"

 みたいなマクロでも同じロジックでファイルを開く動作になります。それも
1回テストしてみてほしいです。

 他には、VBScriptで、たとえば

------test.vbs----------------
    Dim wsh
    Set wsh = CreateObject("Wscript.Shell")
    wsh.Run  "c:\test.jpg"


 みたいなサンプルを作り、それをダブルクリックして実行するとかってテスト
も可能で、僕の所だとどのパターンでも関連づけの問い合わせ無く、いきなり
Windowsフォトビューアーが起動するようでした。



---------------------------------------------------------------------

 どうしてもダメそうでしたら、秀丸メールの方で対応できないことは無くて、
先ほどの話にある「ShellExecute」を使うやり方をやめて、マウス右ボタンメニ
ューの中のデフォルトのコマンド(太字で出てくるコマンド)を実行させるやり
方も可能です。

 実際、ShellExecuteでエラーか返ったら、マウス右ボタンメニューのデフォル
トコマンドを実行する方式になってます。なので、ShellExecuteしないでいきな
りそうしてもダメなことは無いです。

 あと、秀丸ファイラーの方も、基本的にはShellExecuteを使ってるようなので、
そっちで開くテストも一回していただけると、それも解決のヒントになりそうな
気がします。

[ ]
RE:49870 添付ファイルの関連付けNo.49871
水銀灯 さん 16/05/18 17:09
 
>  http://hide.maruo.co.jp/software/bin3/windows-photo-viewer-registry.zip

1回でエラーなく登録できました。その後、秀丸メールで変わりありませんでした。

> その後、秀丸ファイラーから…Windowsフォトビューアーを選択しました。

秀丸ファイラーでフォトビューアーになっていましたが、ペイントを登録してから再
度フォトビューアーに登録しなおしましたが、秀丸メール、秀丸ファイラーともダメ
でした。

>    openbyshell "c:\\test.jpg"

マクロを作成して秀丸エディタから呼び出してもダメでした。

※ダメというのは関連付けダイアログが表示されるという意味です。選択後フォトビ
ューアーは起動します。

[ ]
RE:49870 添付ファイルの関連付けNo.49872
水銀灯 さん 16/05/18 17:13
 
jpg、gif、pngは関連付けダイアログが表示されますが、xlsxなどは問題なくアプリ
が起動します。

私のPC環境のレジストリ設定がダメな気がします。Win10をクリーンインストールを
して、いくつかのアプリケーションをインストールした状態です。

レジストリはこんな感じになっております。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.jpg]
@="jpegfile"
"Content Type"="image/jpeg"
"PerceivedType"="image"

[HKEY_CLASSES_ROOT\.jpg\OpenWithList]

[HKEY_CLASSES_ROOT\.jpg\OpenWithList\Illustrator.exe]
@=""

[HKEY_CLASSES_ROOT\.jpg\OpenWithList\PhotoshopElementsEditor.exe]

[HKEY_CLASSES_ROOT\.jpg\OpenWithProgids]
"AppX43hnxtbyyps62jhe9sqpdzxn1790zetc"=hex(0):
"AppXvhc4p7vz4b485xfp46hhk3fq3grkdgjg"=hex(0):
"jpegfile"=""

[HKEY_CLASSES_ROOT\.jpg\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

もうひとつ、

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\jpegfile]
@="JPEG Image"
"EditFlags"=dword:00210000
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,2d,00,33,00,30,00,35,00,39,00,36,00,00,00
"ImageOptionFlags"=dword:00000001

[HKEY_CLASSES_ROOT\jpegfile\CLSID]
@="{25336920-03F9-11cf-8FD0-00AA00686F13}"

[HKEY_CLASSES_ROOT\jpegfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\
  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,37,\
  00,32,00,00,00

[HKEY_CLASSES_ROOT\jpegfile\shell]

[HKEY_CLASSES_ROOT\jpegfile\shell\printto]
"NeverDefault"=""

[HKEY_CLASSES_ROOT\jpegfile\shell\printto\command]
@=hex(2):22,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,\
  75,00,6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,22,00,20,\
  00,22,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,\
  25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,\
  00,69,00,6d,00,67,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,22,00,2c,00,49,00,\
  6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,5f,00,50,00,72,00,69,00,6e,\
  00,74,00,54,00,6f,00,20,00,2f,00,70,00,74,00,20,00,22,00,25,00,31,00,22,00,\
  20,00,22,00,25,00,32,00,22,00,20,00,22,00,25,00,33,00,22,00,20,00,22,00,25,\
  00,34,00,22,00,00,00

[HKEY_CLASSES_ROOT\jpegfile\ShellEx]

[HKEY_CLASSES_ROOT\jpegfile\ShellEx\{e357fccd-a995-4576-b01f-234630154e96}]
@="{C7657C4A-9F68-40fa-A4DF-96BC08EB3551}"

よろしくお願いいたします。

[ ]
RE:49872 添付ファイルの関連付けNo.49873
秀まるお2 さん 16/05/18 17:52
 
 今さらですが、秀丸メールを直しても根本的な解決にはならないような気がしまし
た。なので、やはりレジストリをうまく書き換えて、とにかくどのアプリケーション
ソフトからも「ファイルを開く」としたら、ちゃんと目的のアプリが起動してくれる
ようにパソコンがセットアップするのがベストのような気がします。

 他に何かいい案が無いか探したら、別のやり方がありました。

    https://thinkit.co.jp/story/2015/08/03/6271

 僕の所ではそっちのやり方でもうまくいきました。

 そこに書いてあるやり方はpngファイルでの例ですが、jpegファイル(.jpg)の場
合、管理者権限のコマンドプロンプトから、

    ftype jpegfile=%SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Window
s Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1

 ってコマンドを実行してからjpgファイルの関連づけを直すって作戦になるかと思
います。

 それか、上記のftypeコマンドを実行してからレジストリエディタを起動し、

 HKEY_CLASSES_ROOT

 配下の

 .jpg

 の所の「(既定)」の値を「jpegfile」に書き換えてしまえば、それでシンプルにWi
ndowsフォトビューアーに関連づけられるような気もします。

 それでもダメでしたら、.jpg配下の「shell」や「ShellEx」を削除して試してみる
とか・・・。

 あと、レジストリエディタで「.jpg」で検索すると、

    HKEY_CLASSES_ROOT\.jpg

 の他に、

    HKEY_CLASSES_ROOT\SystemFileAssociations\.jpg
    HKEY_CURRENT_USER\SOFTWARE\Classes\.jpg
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Fil
eExts\.jpg
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Roaming\OpenWith\FileExts\.jpg
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpg
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.jpg

 って情報もあるようですが、いまいちよく分からないし、下手にいじると元に戻せ
なくなりそうで怖いです。

 まずは「HKEY_CLASSES_ROOT\.jpg」だけいじる作戦だけでどうでしょうか。

[ ]
RE:49873 添付ファイルの関連付けNo.49874
秀まるお2 さん 16/05/18 18:08
 
 今試しに、

    HKEY_CLASSES_ROOT\.jpg

 の(既定)の値をいろいろ書き換えてみたんですが、全然関連付けは変わってく
れないようでした。

 txtfileにしたらメモ帳になってjpegfileにしたらWindowsフォトビューアーに
なると思ったんですが、そういうもんでも無いようです。

 果たして関連づけの情報はどこで管理されてるのやら?

 「Windows10 関連付け レジストリ」

 で検索した情報によると、

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts

 の配下の「.jpg」の所をいじればいいようですが、たとえばそこの
「UserChoice」の「ProgId」を書き換えようとすると、「ProgIdを編集できませ
ん。値の書き込み中に、エラーが発生しました。」と出てしまうようです。

 でも、どうやらここのUserChoiceあたりが怪しそうです。

 .jpgファイルのプロパティから関連付けを変更すると、たしかにProgIdが書き
換わるようではあります。(僕のマシンだと)

[ ]
RE:49874 添付ファイルの関連付けNo.49875
秀まるお2 さん 16/05/18 18:19
 
ちなみにそこのレジストリ値はこんな風になってます。(一回メモ帳にするテストも
したのでtxtfileも出てきます)

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileEx
ts\.jpg]

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileEx
ts\.jpg\OpenWithList]
"a"="Microsoft.Windows.Photos_8wekyb3d8bbwe!App"
"MRUList"="dcba"
"b"="mspaint.exe"
"c"="DllHost.exe"
"d"="NOTEPAD.EXE"

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileEx
ts\.jpg\OpenWithProgids]
"jpegfile"=hex(0):
"jpg_auto_file"=hex(0):
"txtfile"=hex(0):

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileEx
ts\.jpg\UserChoice]
"Hash"="XhPU1ahLBVo="
"ProgId"="jpegfile"


[ ]
RE:49873 添付ファイルの関連付けNo.49876
水銀灯 さん 16/05/18 18:50
 
>    ftype jpegfile=...

試してみましたが、ダメでした。

> HKEY_CLASSES_ROOT 配下の .jpg の所の「(既定)」の値を「jpegfile」

もともと規定はjpegfileになっておりました。

試しに、テストプログラムを書いてみましたが、やっぱりダメでした。
ShellExecute(NULL, "open", szPath, NULL, NULL, SW_SHOWNORMAL);

ひとつ気づいたことがありました。
x86ではダメですが、x64でビルドするとOKです。
何かヒントになれば幸いです。

[ ]
RE:49876 添付ファイルの関連付けNo.49877
水銀灯 さん 16/05/18 18:55
 
秀丸メールの64bit版をインストールしたら正常でした。

[ ]
RE:49877 添付ファイルの関連付けNo.49885
秀まるお2 さん 16/05/19 10:43
 
 僕のマシンもWindows10の64bit版で、普段は64bit版の秀丸メールでテストし
てるんですが、試しに32bit版でテストしてみても、やはり普通に一発でWindows
フォトビューアーが起動するようでした。

 他の作戦を考えてみました。

 CallPhotoViewer.batってファイルを経由させる作戦もやってみました。

start %SystemRoot%\System32\rundll32.exe
    "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscr
een %1

 ってコマンドラインのバッチファイルを作成して、それに関連付ける作戦もや
ってみたんですが、うまくいきませんでした。%1の所にファイル名がダブルク
ォーテーションで囲まれたのが渡されるようで、うまくフォトビューアーが起動
してくれないです。

 で、代わりに、StartPhotoViewer.exeってソフトを作ってみました。これと関
連付けすればうまく起動します。

  http://hide.maruo.co.jp/software/bin3/startphotoviewer20160519.zip

 32bit版と64bit版の両方作ってみました。

 これと関連付ける作戦でどうでしょうか。

 rundll32.exeにバイパスする用のもっとちゃんとしたソフトを作った方がいい
かもしれませんけど、とりあえずということで。

[ ]
RE:49885 添付ファイルの関連付けNo.49887
水銀灯 さん 16/05/20 06:26
 
秀まるさんの環境では、32bitでも問題ないのですね。Surface PRO3ですが、何か違
うんでしょうか?不思議です。

> で、代わりに、StartPhotoViewer.exeってソフトを作ってみました。

ありがとうございます。秀丸ファイラー32bitでテストしてみました。
残念ながら32bit、64bitともに関連付けダイアログが表示されます。
レジストリ周りではなく、ShellExecute、CreateProcessのあたりで、秀32bitの動き
がOSによって影響を受けている感じですね。
秀64bitでは大丈夫です。

[ ]
RE:49887 添付ファイルの関連付けNo.49888
水銀灯 さん 16/05/20 06:39
 
関係ないと思いますが、何かのヒントになるかも?

jpgで関連づけた場合は、フォント150%でWindowsフォトビューワーが表示されます
が、pngに関連づけると100%のまま小さいサイズで表示されます。関連付けているア
プリは同じなのに不思議です。
秀64bitからでもエクスプローラから起動しても同じ症状です。

フォント拡大を利用している環境では、OSの動きが何か違うのでしょうかね?

[ ]
RE:49888 添付ファイルの関連付けNo.49889
秀まるお2 さん 16/05/20 09:23
 
 また別の作戦を考えました。

 まず、「Honeyview」ってソフトがあるのでこれをインストールします。

http://enjoypclife.net/2015/11/30/honeyview-windows-10-image-viewer-manga-free-soft/

 これをインストールする時に、ファイルへの関連付けもちゃんとするようにし
ます。(標準で関連付けするようになってます)

 そして、秀丸メールの32bit版を起動して、jpgファイルをダブルクリックする
と、最初の1回目はたしかに問い合わせが出ますが、2回目からは出なくなると
思います。

 2回目から一発でHoneyviewが起動することを確認できたら・・・

 「C:\Program files\Honeyview」にある「Honeyview.exe」を、
StartPhotoViewer.exeに置き換えてしまいます。

 Honeyview.exeを「original-Honeyview.exe」に名前変更して、そこに
StartPhotoViewe.exeをコピーしてから名前を「Honeyview.exe」に変えてしまい
ます。

 そうすると、以後、jpgファイルをダブルクリックすれば、Windowsフォトビ
ューアーが起動します。

 その作戦でどうでしょうか。

 Honeyviewでも、やはり開く度に関連付けを聞いてくるとしたら・・・もしか
して「フォト」にしたら2回目聞いてこないとかだったら、マイクロソフトの陰
謀で、なにがなんでも「フォト」にしないとダメなようにいやがらせしてるって
ことでしょうかね・・・

[ ]
RE:49889 添付ファイルの関連付けNo.49890
秀まるお2 さん 16/05/20 09:45
 
 もう1つ別の作戦もやってみました。

 Windowsに標準で付いてる「ペイント」(mspaint.exe)を乗っ取る作戦もやっ
てみたんですが、それでもうまくいきます。

 こっちの場合、64bit版と32bit版があるので、たとえば32bit版の秀丸メール
からjpgファイルを開く用には32bit版のmspaint.exeを乗っ取る必要があります。

 64bit版は、C:\Windows\System32
 32bit版は、C:\Windows\SysWOW64

 にあります。

 乗っ取るには、セキュリティをいじる必要があります。普通にファイルを上書
きなり名前変更なりしようとすると、管理者権限があっても失敗します。ファイ
ルの所有者を「TrustedInstaller」から「Administrators」に変更してからアク
セス権限をいじるなどの作業が必要です。

 もしもHoneyviewを乗っ取る作戦がダメで、「ペイント」への関連付けならう
まくいく(毎回関連付けの問い合わせが出ない)なら、こっちの乗っ取り作戦で
もいけると思います。

[ ]
RE:49890 添付ファイルの関連付けNo.49891
水銀灯 さん 16/05/20 13:57
 
原因不明なので今回は秀丸メール64を使うことで回避したいと思います。

いろいろありがとうございました。

[ ]