●関連付け/解除

「●関連付け/解除」の編集履歴(バックアップ)一覧はこちら

●関連付け/解除」(2013/04/11 (木) 15:16:19) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*情報 作者名:Lis 引用元:[[なでしこプログラム掲示板「cryptlnk - 暗号ショートカット」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=913&rev=&no=0]] 勝手に改変 *概要 拡張子とアイコンをアプリケーションと関連付けします。 *解説 ***引数 拡張子:「.○○」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)") ---- #comment() ----
*情報 作者名:Lis 引用元:[[なでしこプログラム掲示板「cryptlnk - 暗号ショートカット」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=913&rev=&no=0]] 勝手に改変 *概要 拡張子とアイコンをアプリケーションと関連付けします。 *解説 ***引数 拡張子:「.○○」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) #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

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