0

ネットのあちこちで同じ質問を繰り返していたらすみません。「Google」とは言わないでください。私は多くのGoogle検索とstackoverflow検索を行い、多くの解決策を見つけました。何も助けることができませんでした。

タスクマネージャーへのユーザーアクセスをブロックしたいアプリケーションのようなキオスクを作成しています。win32 api とグーグルで調べた結果、次のコードを思いつきました。

        string user = Environment.UserDomainName + "\\" + Environment.UserName;
        RegistrySecurity rs = new RegistrySecurity();

        rs.AddAccessRule(new RegistryAccessRule(user,
            RegistryRights.FullControl,
            InheritanceFlags.None,
            PropagationFlags.None,
            AccessControlType.Allow));

        RegistryKey rk = null;

        try
        {
            rk = Registry.CurrentUser.CreateSubKey(
                @"Software\Microsoft\Windows\CurrentVersion\Policies\System",
                RegistryKeyPermissionCheck.Default, rs);

            rk.SetValue("DisableTaskMgr", 1);
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

        if (rk != null) rk.Close();

それでも許可エラーが発生します.. Windows 8 システムを使用しています。私のウイルス対策も無効になっています。レジストリを手動で編集すると、適切な結果が得られます。

ここに画像の説明を入力

これを解決するのを手伝ってください。

4

1 に答える 1

0

これは、アクセスが制限されているレジストリの一部です。表示されるアクセス拒否エラーは妥当であり、予想どおりです。

regedit の下の権限を見てください。[ポリシー] ノードを右クリックし、[アクセス許可] を選択します。標準ユーザーは読み取りアクセスしかできないことに注意してください。レジストリのその部分への書き込みアクセスを取得するには、昇格する必要があります。

于 2013-11-13T07:22:24.133 に答える