以编程方式更改IE设置

3
我正在尝试创建一个Windows应用程序,将URL添加到IE的“受信任站点”中。这部分已经实现。 解决方案 - http://www.nakov.com/blog/2009/05/15/c-code-for-changing-internet-explorer-security-settings-and-net-security-policy-to-run-windows-forms-based-activex-with-full-trust/ 但我还需要更改同样的设置。我需要这样做: “跨域访问数据源”需要“启用” “下载未签名的ActiveX控件”需要“提示” “初始化和执行未标记为安全的ActiveX控件”需要“启用”
这是我的代码,但它不起作用。
    private void UpdateDataSource() 
    {
        RegistryKey ChangeSettings = Registry.Users;
        ChangeSettings = ChangeSettings.OpenSubKey(".DEFAULT\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2", true);

        // "Access data sources across domains" - "Enable" 
        ChangeSettings.SetValue("1406", "0", RegistryValueKind.DWord);

        // "Download unsigned ActiveX controls" - "Prompt" 
        ChangeSettings.SetValue("1004", "1", RegistryValueKind.DWord);

        // "Initialize and script ActiveX controls not marked as safe for scripting" - "Enable" 
        ChangeSettings.SetValue("1201", "0", RegistryValueKind.DWord);

        ChangeSettings.Close();
    }

source http://www.hohmanns.de/


1
这个问题的意思是:“如何降低用户帐户在IE中的所有安全设置?”更不用说如果安全设置是通过组策略设置的,你将无法做到这一点。 - slugster
Slugster - 你有“如何降低用户帐户的IE中的所有安全设置”的链接吗?也许它可以帮助我。 - LuckyDice
2
笑。在你发布那个链接之后,@slugster,也许你可以找到“如何绕过操作系统中的每个安全功能?”这个问题。这一定存在,对吧,@Simon? - adelphus
@Simon:任何答案都提供了解决方案吗? - Michel Keijzers
4个回答

3

试试这个,它有效:

private void UpdateDataSource()      
{         
    RegistryKey ChangeSettings = Registry.CurrentUser.OpenSubKey(@"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3", true);          
    // "Access data sources across domains" - "Enable"          
    ChangeSettings.SetValue("1406", "0", RegistryValueKind.DWord);          
    // "Download unsigned ActiveX controls" - "Prompt"          
    ChangeSettings.SetValue("1004", "1", RegistryValueKind.DWord);          
    // "Initialize and script ActiveX controls not marked as safe for scripting" - "Enable"          
    ChangeSettings.SetValue("1201", "0", RegistryValueKind.DWord);          
    ChangeSettings.Close();    
}

这对我有用..谢谢..创建了一个控制台程序并运行了代码。设置立即反映出来。 - Shubh
@Rohit,感谢您的回答。我有同样的问题,需要更改Microsoft Office设置(将数字设置更改为上下文模式)。您有任何想法吗? - C.F.G
我尝试过这个,在本地主机上完美运行。但在Web服务器IIS上却没有工作。 - Karthic G

1

0
太棒了,它起作用了.. 这是关键:
RegistryKey ChangeSettings = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", true);

0

你可以尝试在IE中手动更改它,然后检查注册表中的更改内容,并找到一种直接更改注册表的方法,或者找到更好的更改该特定标记的方法。


3
这应该是一条评论,而不是一个回答。 - slugster
已经尝试查看注册表中的更改,但我无法看到它。 - LuckyDice
@slugster:好的,谢谢……我猜这包括了所有(部分)答案或指向答案的方向? - Michel Keijzers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接