C#写IE配置工具
最近在做OA的时候,碰到需要手动的修改IE的许多配置项,比如下载文件提示,ActiveX提示,浏览器标签设置,感觉如果都让用户来手动配置的话,估计每个用户都会很烦,尤其是计算机水平不高的用户。经过一段时间的摸索,发现所有的IE设置都是存在注册表中的,何不自己写一个修改注册表的工具呢,我的需求是这样的:
1、需要修改几个IE的配置项,在OA运行的时候,去掉安全提示,让用户用起系统来感觉很流畅。
2、在系统登录之后弹出全屏的IE窗口,这个用window.open()来做,效果还不错,但是如果用户的IE设置时在新选项卡中打开新窗口的话,达不到效果,而且如果用户启用了拦截窗口的话,window.open是弹不出窗口的。
3、在桌面生成一个快捷方式,直接点击快捷方式进入OA登录页面。
先上图:
下面是代码:
private void btnOK_Click(object sender, EventArgs e)
{
if (txtAddress.Text.Trim() == "")
{
MessageBox.Show("请输入OA地址");
return;
}
try
{
string ipAddress = txtAddress.Text.Replace("http://", "");
//修改信任站点的安全设置
RegistryKey key = Registry.CurrentUser;
RegistryKey subkey = key.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2", true);
subkey.SetValue("1001", 0);
subkey.SetValue("1004", 0);
subkey.SetValue("1200", 0);
subkey.SetValue("1201", 0);
subkey.SetValue("1208", 0);
subkey.SetValue("1209", 0);
subkey.SetValue("1405", 0);
subkey.SetValue("1803", 0);
subkey.SetValue("1806", 0);
subkey.SetValue("1809", 1);
subkey.SetValue("2000", 0);
subkey.SetValue("2200", 0);
subkey.SetValue("2201", 0);
//修改选项卡显示方式
RegistryKey tabKey = key.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TabbedBrowsing", true);
if (tabKey == null)
{
MessageBox.Show("IE浏览器没有初始化");
return;
}
tabKey.SetValue("PopupsUseNewWindow", 0);
if (radioButton1.Checked)
{
//添加IP到信任站点
string ipStr = ipAddress.Split('/')[0];
RegistryKey hkml = Registry.CurrentUser;//读取HKEY_CURRENT_USER
string address = @"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP\RANGES";
RegistryKey key1 = hkml.OpenSubKey(address, true);
RegistryKey Name1 = key1.CreateSubKey("RANGES1");//新建项
Name1.SetValue(":Range", ipStr, RegistryValueKind.String);//赋值
Name1.SetValue("http", 0x2, RegistryValueKind.DWord);//赋值
}
else
{
//添加信任站点
string domainStr = ipAddress.Split('/')[0];
string[] domainStrs = domainStr.Split('.');
string domainName = "";
for (int i = 1; i < domainStrs.Length; i++)
{
domainName += domainStrs[i] + ".";
}
domainName = domainName.Trim('.');
RegistryKey hkml = Registry.CurrentUser;//读取HKEY_CURRENT_USER
string address = @"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP\Domains";
RegistryKey key1 = hkml.OpenSubKey(address, true);
RegistryKey domain = key1.CreateSubKey(domainName);//新建项
RegistryKey ww = domain.CreateSubKey("www");//新建子项 www按需求替换
ww.SetValue("https", 0x2, RegistryValueKind.DWord);//赋值
}
//创建快捷方式
WshShell shell = new WshShell();
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "//" + txtShortCut.Text.Trim() + ".lnk");
shortcut.TargetPath = IEFilePath();
shortcut.Arguments = txtAddress.Text;
shortcut.WindowStyle = 3;//窗体最大化
shortcut.Description = "测绘OA快速启动方式";
shortcut.IconLocation = Application.StartupPath + "\\FrmIcon.ico";//图标
shortcut.Save();
MessageBox.Show("配置成功");
Application.Exit();
}
catch (Exception)
{
MessageBox.Show("请确保OA地址是否填写正确");
}
}
/// <summary>
/// 获取IE浏览器的路径
/// </summary>
/// <returns></returns>
public string IEFilePath()
{
return System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Internet Explorer\\iexplore.exe");
}
至此完美完成。
运行输入相应项之后生成快捷方式:
点击进入:
登录之后就会显示全屏窗口:
至此,完成配置工具的开发,桌面上的图片感觉和整个系统不配套,有人有好的图片么?没美工就是痛苦啊 如有人有兴趣为系统设计一张桌面图片 请联系本人 本人可以出一部分钱哦 呵呵 不喜勿喷...