2016-11-18 60 views
0

私のプロジェクトが不思議だったのですが、MachineGuidをレジストリや他の方法で変更することは可能ですか? ...それは自動的に再生成しますMachineGuid値を、削除されません。私は、複数のアプリケーションでそれを見てきましたし、私はそれが私のコードMachineGuidを変更するC#

  RegistryKey reg = Registry.LocalMachine; 
      reg.OpenSubKey("SOFTWARE\\Microsoft\\Cryptography"); 
      reg.DeleteValue("MachineGuid"); 
      reg.Close(); 

      consolebox.AppendText("MachineGuid should be changed!\n"); 

あるmyself..Thisしかし、それは動作しません行うことができません約2秒後に....

エラーは、値を見つけられないと言っています。MachineGuidは存在しません...しかし、私はregeditに行くのですか?

私は管理者としてアプリケーションを実行しない場合、それは値が削除されたと言うが、私がしなければ、それはそれは存在しないと言う....

+0

あなたはそれが再作成されると言いました。価値は違いますか? –

+0

値が削除された場合は、別の値として再作成されます。 –

+0

おそらく 'Wow6432Node'マスキング - http://stackoverflow.com/questions/869783/windows-64-bit-registry-v-s-32-bit-registry? –

答えて

1

あなたはまず、問題のカップルを持っています書き込み可能にするためにキーを開かず、OpenSubKeyの結果を使用しないでください。このメソッドは、実際に開いたキーを返します。

RegistryKey reg = Registry.LocalMachine; 
using(var key = reg.OpenSubKey("SOFTWARE\\Microsoft\\Cryptography", true)) // writeable 
{ 
    key.DeleteValue("MachineGuid"); 
} 

RegistryKeyオブジェクトは、キーを閉じて配置するような場合に使用してパターンを適用するより良い、IDisposableを実現します。

+0

ありがとうございます!!!!!! –

関連する問題