右クリックのコンテキストメニューから昇格されたDLLの登録と登録解除

この投稿では、Windows Vista、7、8、および10でDLLおよびOCXファイルの右クリックメニューに登録および登録解除コマンドを追加する方法について説明します。

DLLまたはOCXファイルを登録するには、通常、 昇格されたコマンドプロンプトからregsvr32.exeを実行する必要があります。 昇格していない状態からシステムDLLを登録すると、エラーが発生する場合があります。 たとえば、システムモジュールJScript.dllを[スタート]、[検索]ボックスから(つまり、昇格せずに)登録しようとします。 これを行うと、エラー0x80004005または0x80007005 (「アクセスが拒否されました」)が表示されます。

方法1:コンテキストメニューからDLLを登録する–「runas」動詞

昇格された権限でRegsvr32.exeコマンドを実行するコンテキストメニューに[ 登録]コマンドを追加するには、特別なrunas動詞を使用できます。 これは私が作成したREGファイルです。次のレジストリキーにDLLおよびOCXファイルタイプのrunas動詞を追加します。

 HKEY_CLASSES_ROOT \ dllfile \ runas HKEY_CLASSES_ROOT \ ocxfile \ runas 
  1. register_runas.regファイルをダウンロードして、デスクトップに保存します。
  2. ファイルを右クリックして、「マージ」を選択します。
  3. 確認を求められたら、[ はい]をクリックします。

これで、DLLおよびOCXファイルタイプの右クリックメニューに[ 管理者として登録 ]コマンドが表示されます。

方法2:Regsvr32.exeを常に昇格して実行するように設定する

「runas」動詞は1つのアイテムにしか使用できないため、「登録解除」コマンドを追加するには、上記とは異なる方法を使用する必要があります。 これは、「ru​​nas」動詞を使用せずに、DLLファイルのコンテキストメニューに「登録」および「登録解除」コマンドを追加する別の方法です。

このメソッドは、 AppCompatFlags\Layersレジストリエントリを追加して常にRegsvr32.exe昇格を実行するようシステムに指示し、通常の方法で「登録」および「登録解除」コンテキストメニューエントリを実装します。

REGファイル

 Windowsレジストリエディタバージョン5.00 [HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers] "C:\\ Windows \\ System32 \\ regsvr32.exe" = "〜RUNASADMIN" [HKEY_CLASSES_ROOT \ DllFile \ Shell \ Register] "HasLUAShield" = "" [HKEY_CLASSES_ROOT \ DllFile \ Shell \ Register \ command] @ = "C:\\ Windows \\ System32 \\ regsvr32.exe \"%1 \ "" [HKEY_CLASSES_ROOT \ DllFile \ Shell \ Unregister] " HasLUAShield "=" "[HKEY_CLASSES_ROOT \ DllFile \ Shell \ Unregister \ command] @ =" C:\\ Windows \\ System32 \\ regsvr32.exe -u \ "%1 \" "[HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Register] "HasLUAShield" = "" [HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Register \ command] @ = "C:\\ Windows \\ System32 \\ regsvr32.exe \"%1 \ "" [HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Unregister] " HasLUAShield "=" "[HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Unregister \ command] @ =" C:\\ Windows \\ System32 \\ regsvr32.exe -u \ "%1 \" " 

上記の行をメモ帳にコピーし、拡張子が.regのファイルを保存します。 ダブルクリックして.regファイルを実行します。 これにより、DLLおよびOCXファイルのコンテキストメニューに「登録」および「登録解除」コマンドが追加されます。

コンテキストメニューから[登録]および[登録解除]コマンドを削除(元に戻す)するには、次の.regファイルを使用します。

 Windowsレジストリエディタバージョン5.00 [HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers] "C:\\ Windows \\ System32 \\ regsvr32.exe" =-[-HKEY_CLASSES_ROOT \ DllFile \ Shell \ Register] [- HKEY_CLASSES_ROOT \ DllFile \ Shell \ Unregister] [-HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Register] [-HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Unregister] 

それでおしまい!

関連記事