(ruby)(「右クリックメニュー」→「プログラムから開く」による関連付けを解除するレジストリファイルを生成するスクリプト)

 拡張子に対してエクスプローラの右クリックメニューから関連付けをすると
「assoc + ftype」で関連付けの設定をしてあっても
右クリックメニューのほうの設定が優先して実行されてしまいます
解除したいと思ってもレジストリをいじらないと解除できないのでめんどくさいですよね
(通常操作において関連付け先の変更は出来るけど削除は出来ない)
それを一発で解除してくれる .regファイルを生成してみます

 .rb ファイルならば
[HKEY_CURRENT_USER\Software\Classes\.rb]
[HKEY_CURRENT_USER\Software\Classes\rb_auto_file]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.rb]
レジストリを削除する感じの.regファイルを作ればいいわけですね
よって

ruby2.0.0、Windows7 64bit
FileFormat=unix、FileEncoding=utf-8
#!d:\ruby200\bin\ruby -Ku
# テキトーに書き換えてください

extension = ARGV[0]
puts('.' << extension << ' ファイルの関連付けを解除するregファイルを生成します')
f = File.open('unreg_assoc_' << extension << '.reg', 'w')
f.print(
	<<"EOHD"
REGEDIT4

[-HKEY_CURRENT_USER\\Software\\Classes\\.#{extension}]

[-HKEY_CURRENT_USER\\Software\\Classes\\#{extension}_auto_file]

[-HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.#{extension}]

EOHD
)
puts( "\n" << File.expand_path(f) << 'を生成しました')
f.close()
こんな感じかな?

実行は 第一オプションに拡張子を指示してあげます、「.」は付けません
.rbファイルなら「rb」ですね
make_unreg_assoc.rb rb
「unreg_assoc_rb.reg」という .regファイルが出来上がります
あとは .rbファイルに対する関連付けを解除したい時に実行するだけです
「assoc + ftype」の方の設定には影響を与えません

 まぁレジストリをいじる事には変わりが無いので、実行されるのは自己責任で行ってください