私はファイルの関連付けに取り組んでいます。呼び出されたキーがあることを確認しUserChoice
ました:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\[ext].
キーを作成し、Windows によってまだ作成されていなければ、UserChoice
キーの読み取りと書き込みを行うことができました。ただし、キーがWindows によって既に作成されている場合は、管理者として実行してキーにアクセスする必要があります。私の最終的な目標は、キーを削除することです。UserChoice
UserChoice
Windows がキーに拒否ルールを設定しているため、そのUserChoice
キーを削除できないことに注意しました。そのルールを取り除くことができれば、UserChoice
鍵を削除できると思います。これが私が試したコードです:
public static void ShowSecurity(RegistryKey regKeyRoot, string user) {
RegistrySecurity security = regKeyRoot.GetAccessControl(AccessControlSections.All);
foreach (RegistryAccessRule ar in
security.GetAccessRules(true, true, typeof(NTAccount))) {
if (ar.IdentityReference.Value.Contains(User) &&
ar.AccessControlType.ToString().ToLower() == "deny") {
security.RemoveAccessRuleSpecific(ar);
regKeyRoot.SetAccessControl(security);
}
}
}
Windows がキーを作成するとき、Type DenyUserChoice
の現在のユーザーのセキュリティ ルールが追加されます。許可:特別。このルールは継承されず、UserChoice
キーのみに適用されます。
管理者としていくつかいじって実行すると、それにアクセスできますRegistryAccessRule
。ただし、管理者として実行しても、このルールを削除できません。私の研究のどこかで、それを行うプログラム的な方法がないことを読んだことがあります。このルールは RegEdit で削除できます。UserChoice
NirSoft の File Types Manager を使用してキーを削除することもできます。したがって、これを行う何らかの方法があると思います。
概要:キーを削除できるように拒否ルールを削除する方法はありUserChoice
ますか?