●関連付け/解除

情報


概要

拡張子とアイコンをアプリケーションと関連付けします。

解説

引数

拡張子:「.○○」or「○○」
起動パス:実行するパス
アイコン:アイコンファイルへの絶対パス

サンプルプログラム

●母艦設計
  母艦の可視=オフ。
アイコン=「{母艦パス}sample.ico」。//自分で用意
拡張子=「aiueo」。
起動パス=「notepad.exe」。

拡張子を起動パスとアイコンで関連付け。
「{拡張子}{改行}{起動パス}{改行}---{改行}関連付けしました」と言う。
母艦パスでエクスプローラー起動。
「てすてす」を「{母艦パス}test.aiueo」に保存。

60秒待つ。

もし、「{母艦パス}test.aiueo」の存在=はいならば、「{母艦パス}test.aiueo」をファイル削除。
拡張子を関連付け解除。

「関連付けを解除しました」と言う。

終わり。

//本体

●関連付け(拡張子を起動パスとアイコンで)
  もし、拡張子の1から1バイト抜き出す=「.」ならば、拡張子の1から1バイト削除。
  HndR="HKEY_CLASSES_ROOT\.{拡張子}\"のレジストリ開く。
  HndRで""に"{拡張子}"をレジストリ書く。
  HndRのレジストリ閉じる。
  もし、アイコンの存在=いいえならば、アイコン=0。
  HndR="HKEY_CLASSES_ROOT\{拡張子}\DefaultIcon\"のレジストリ開く。
  HndRで""に"{アイコン},0"をレジストリ書く。
  HndRのレジストリ閉じる。
  HndR="HKEY_CLASSES_ROOT\{拡張子}\Shell\Open\Command\"のレジストリ開く。
  HndRで""に"{起動パス} %1"をレジストリ書く。
  HndRのレジストリ閉じる。
  SHChangeNotify(SHCNE_ASSOCCHANGED,0,0,0)。
  
●関連付け解除(拡張子を)
  もし、拡張子の1から1バイト抜き出す=「.」ならば、拡張子の1から1バイト削除。
  HndR="HKEY_CLASSES_ROOT\.{拡張子}"のレジストリ開く。
  HndRで""をレジストリキー削除。
  HndRのレジストリ閉じる。
  HndR="HKEY_CLASSES_ROOT\{拡張子}\"のレジストリ開く。
  HndRで""をレジストリキー削除。
  HndRのレジストリ閉じる。
  SHChangeNotify(SHCNE_ASSOCCHANGED,0,0,0)。

!SHCNE_ASSOCCHANGED = $8000000
●SHChangeNotify(w,f,i1,i2) =DLL("shell32.dll","VOID SHChangeNotify(LONG wEventId,uINT uFlags,LPCVOID dwItem1,LPCVOID dwItem2)")

  • 使わせて頂きました。 レジストリへの記入を「{起動パス} %1」→ 「{起動パス} "%1"」にしないと、ファイルパス中のスペースで区切られてしまう様です。 -- 名無しさん (2013-04-11 15:16:19)
名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年04月11日 15:16
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。