C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: レジストリキー名の変更方法について


(過去ログ 100 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■60054 / inTopicNo.1)  レジストリキー名の変更方法について
  
□投稿者/ 風太郎 (19回)-(2011/06/17(Fri) 13:33:04)

分類:[VB.NET/VB2005 以降] 

2011/06/17(Fri) 13:41:58 編集(投稿者)
2011/06/17(Fri) 13:33:53 編集(投稿者)

環境
開発:Microsoft Visual Basic 2005
使用OS:Windows Server 2003 Standard (32bit) アップデーションは全て終了

目的
レジストリに登録されている任意のレジストリキー名を変更したい

概要と目的
プリンタの名称/共有名を変更する必要があり
レジストリキー「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers」よりプリンタの一覧を取得
その後、個々のキー名(プリンタ個々に対応する)を作成し、値の変更を実行

この後、個々のキー名自体を変更したい

以上、何卒よろしくお願い申し上げます。
引用返信 編集キー/
■60055 / inTopicNo.2)  Re[1]: レジストリキー名の変更方法について
□投稿者/ もんごろいどAU (3回)-(2011/06/17(Fri) 13:54:41)
No60054 (風太郎 さん) に返信
半角カナはやめませう………アップデーション?

で、本文には質問文がありませんが、何の情報をお探しでしょうか。
何が判らないのか明確に書かないと回答がつきにくいかと。
どこまで出来て、どこが出来ないとか。



まさかこの仕様を実現するコードを書けってことじゃないですよね…。
引用返信 編集キー/
■60057 / inTopicNo.3)  Re[2]: レジストリキー名の変更方法について
□投稿者/ 風太郎 (20回)-(2011/06/17(Fri) 14:39:10)
No60055 (もんごろいどAU さん) に返信
> ■No60054 (風太郎 さん) に返信
> 半角カナはやめませう………アップデーション?
>
> で、本文には質問文がありませんが、何の情報をお探しでしょうか。
> 何が判らないのか明確に書かないと回答がつきにくいかと。
> どこまで出来て、どこが出来ないとか。
>
>
>
> まさかこの仕様を実現するコードを書けってことじゃないですよね…。

簡潔に申し上げますと「任意のレジストリキー名を変更する」が目的です
不可能な様な気がしているのですが、方法があるのかを知りたいです
参考になるようなものがあれば、御教示頂ければ幸いです

引用返信 編集キー/
■60059 / inTopicNo.4)  Re[3]: レジストリキー名の変更方法について
□投稿者/ ジョジョ (1回)-(2011/06/17(Fri) 15:46:38)
> 簡潔に申し上げますと「任意のレジストリキー名を変更する」が目的です

以下のサイトを見ますと、レジストリエディタでも、変更後レジストリキーを生成してから、元のレジストリキーを削除しているとのことです。

http://oshiete.goo.ne.jp/qa/925215.html

やはり、レジストリキーの生成・内容のコピー・元レジストリの削除、とするしかないようです。
引用返信 編集キー/
■60090 / inTopicNo.5)  Re[4]: レジストリキー名の変更方法について
□投稿者/ 風太郎 (21回)-(2011/06/20(Mon) 09:53:42)
No60059 (ジョジョ さん) に返信
>>簡潔に申し上げますと「任意のレジストリキー名を変更する」が目的です
>
> 以下のサイトを見ますと、レジストリエディタでも、変更後レジストリキーを生成してから、元のレジストリキーを削除しているとのことです。
>
> http://oshiete.goo.ne.jp/qa/925215.html
>
> やはり、レジストリキーの生成・内容のコピー・元レジストリの削除、とするしかないようです。

ありがとうございます。当方も週末試行錯誤してみましたが
やはり、新規生成⇒コピー⇒元削除の方法が無難ですね。
もしかすると何かしらの方法があるかもしれませんが、目的を達成出来ましたので、これで解決といたします。

行った手法
1.新規レジストリキーを任意の名前で生成
2.元レジストリキーより、サブキー並びに、値を取得
3.2で取得した内容を1へコピー
4.元レジストリキーを削除

解決済み
引用返信 編集キー/
■60093 / inTopicNo.6)  Re[3]: レジストリキー名の変更方法について
□投稿者/ aetos (359回)-(2011/06/20(Mon) 13:15:53)
No60057 (風太郎 さん) に返信
> 簡潔に申し上げますと「任意のレジストリキー名を変更する」が目的です
> 不可能な様な気がしているのですが、方法があるのかを知りたいです
> 参考になるようなものがあれば、御教示頂ければ幸いです

MSDN には載ってないんですが、WinReg.h には RegRenameKey という関数が定義されています。
#if(WINVER >= 0x0600) なので Vista 以降でしか使えませんけど。
あと、Undocumented なので(.h ファイルに書いてあって Undocumented ってのも珍しいですが)自己責任で。

引用返信 編集キー/
■60095 / inTopicNo.7)  Re[5]: レジストリキー名の変更方法について
□投稿者/ aetos (360回)-(2011/06/20(Mon) 14:42:34)
No60090 (風太郎 さん) に返信

コピーと削除であれば、RegCopyTree、RegDeleteTreeという便利な関数もあります(いずれも Windows Vista 以降で使用可能です)。

また、RegSaveKey、ResRestoreKeyを使うことで、Windows 2000 でも再帰コードを書かずにコピーできます(削除は下の方から再帰でやるしかありませんが)。
ただし、この方法では特権が必要なため、特に Vista 以降ですと管理者権限が必要になります。

# なぜかスパム扱いされるので関数名を全角化してみる。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -