C# 中如何实现对浏览器的主页进行修改?

我用c#编了个winform的程序,如何对火狐浏览器和360浏览器的主页进行修改??请高手指教,不胜感谢!!恩,那个360浏览器的注册表里没有对主页的修改,也就是我修改了... 我用c#编了个winform的程序,如何对火狐浏览器和360浏览器的主页进行修改??请高手指教,不胜感谢!!
恩,那个360浏览器的注册表里没有对主页的修改,也就是我修改了下360的主页www.abcd.com,在注册表里查不到www.abcd.com
展开
 我来答
pe...1@qq.com
2009-05-11 · 超过25用户采纳过TA的回答
知道答主
回答量:185
采纳率:0%
帮助的人:0
展开全部
修改火狐浏览器和360浏览器的主页,其实就是修改ie主页。
找个C# winform 浏览器源码,里面有修改代码。

例如:

声明部分代码:

using System.Runtime.InteropServices;

读取函数

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);

写入函数
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetGetCookie(string lpszUrlName, string lbszCookieName, StringBuilder lpszCookieData, ref int lpdwSize);

检测错误函数
[DllImport("kernel32.dll")]

public static extern Int32 GetLastError();

使用部盯并分代码

设置cookie

if (!InternetSetCookie("http://xxxx/xxxx.htm", "Test", "Sent as Test via VB+ ;expires=Sun,22-Feb-2099 00:00:00 GMT"))
{

MessageBox.Show(GetLastError().ToString());
}

读取cookie

int size = 1000;
StringBuilder cookie = new StringBuilder(size);

if (!InternetGetCookie("http://xxxx/xxxx.htm", "Test", cookie, ref size))
{
MessageBox.Show(GetLastError().ToString());
}

else

{

MessageBox.Show(cookie.ToString());

}

需要注意的几点:

1、StringBuilder lpszCookieData, ref int lpdwSize 这两个变量并非绝对如此设置, 也有设置成string和long类型的,根据需要选择

2、设置cookie有两种,一种是会话级的,即脱离会话cookie即清楚,一种是凯雹迹持久性的,程序结束也仍然存在,直到超期。

会话级的cookie很特别,因为它是保存在内存中的,所以你在Temporary Internet Files文件夹中是找不到它的,只能在你设置cookie的应用程序中读出。而持久性cookie就可以在Temporary Internet Files文件夹中找到。这种cookie才能进行传递。两种cookie的设置程序是一样的,唯肆裤一的区别是持久性cookie设置要在cookie值后附加上“;expires=Sun,22-Feb-2099 00:00:00 GMT",过期时间可以根据需要自定。

顺便补充下如何在C#程序中调用浏览器,代码很简单,如下:

System.Diagnostics.Process.Start("http://www.google.com");//默认浏览器

System.Diagnostics.Process.Start("IEXPLORE.EXE","http://expert.csdn.net") ;//指定浏览器

其实该函数可以做的事情还很多,下面是MSDN说明

该函数MSDN说明

名称 说明
Process.Start () 启动(或重用)此 Process 组件的 StartInfo 属性指定的进程资源,并将其与该组件关联。
由 .NET Compact Framework 支持。

Process.Start (ProcessStartInfo) 启动由包含进程启动信息(例如,要启动的进程的文件名)的参数指定的进程资源,并将该资源与新的 Process 组件关联。
由 .NET Compact Framework 支持。

Process.Start (String) 通过指定文档或应用程序文件的名称来启动进程资源,并将资源与新的 Process 组件关联。
Process.Start (String, String) 通过指定应用程序的名称和一组命令行参数来启动一个进程资源,并将该资源与新的 Process 组件相关联。
由 .NET Compact Framework 支持。

Process.Start (String, String, SecureString, String) 通过指定应用程序的名称、用户名、密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。
Process.Start (String, String, String, SecureString, String) 通过指定应用程序的名称和一组命令行参数、用户名、密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。

源码:

http://www.enet.com.cn/article/2008/0611/A20080611291881.shtml
http://mydown.yesky.com/code/236/236563.html

参考资料: http://blog.csdn.net/kobayasi/archive/2009/04/10/4063481.aspx

etuchang
2009-05-14 · 超过43用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:139万
展开全部
主页进行修改其实就是改注册表。
可以学一下c#如何操作注册表

1.读取指定名称的注册表的值
private string GetRegistData(string name)
{
string registData;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.OpenSubKey("XXX",true);
registData = aimdir.GetValue(name).ToString();
return registData;
}
以上是读取的注册表中HKEY_LOCAL_MACHINE\SOFTWARE目差陪录下的XXX目录中名称为name的注册表值;

2.向注册表中写数据
private void WTRegedit(string name,string tovalue)
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.CreateSubKey("XXX");
aimdir.SetValue(name,tovalue);
}
以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下新建XXX目录并在此目录下创建名称为name值为tovalue的注册表项;

3.删除注册表中指虚空蠢定的注册表项
private void DeleteRegist(string name)
{
string[] aimnames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.OpenSubKey("XXX",true);
aimnames = aimdir.GetSubKeyNames();
foreach(string aimKey in aimnames)
{
if(aimKey == name)
aimdir.DeleteSubKeyTree(name);
}
}
以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中删除名称为name注册表项;

4.判断指定注册表项是否存在
private bool IsRegeditExit(string name)
{
bool _exit = false;
string[] subkeyNames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.OpenSubKey("XXX",true);
subkeyNames = aimdir.GetSubKeyNames();
foreach(string keyName in subkeyNames)
{
if(keyName == name)
{
_exit = true;
return _exit;
}
}
return _exit;
}
以上是在注册表中HKEY_LOCAL_MACHINE\SOFTWARE目录下XXX目录中判断名称为name注册表项是否存在,这一方法在删除注册表时已经存在,在新建一注册表项时亏颂也应有相应判断;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc91b32
2009-05-11 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
主页孙郑就是谈雀修改注册表:则侍颂
HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main下的Default_Page_URL的键值即可,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美好且泰然的仓鼠2
2009-05-11 · TA获得超过2703个赞
知道小有建树答主
回答量:1259
采纳率:0%
帮助的人:1267万
展开全部
最简单隐茄兆的办法是:
如果是IE,可以修改注册表,
如果是FF,可以修改本地配纳拆置文件
用读写灶租文件FileStream直接修改
C:\Documents and Settings\***\Application Data\Mozilla\Firefox\Profiles\***.default\
prefs.js
newstarao 12:47:09
user_pref("browser.startup.homepage", "http://www.52freee.com/");
6jnxux8j 这个文件名可能不是固定的
rao.FREE 这个是计算机用户名

360的容我再想想
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友eab4a8d
2009-05-15 · TA获得超过1824个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:402万
展开全部
我建议兄弟别修改别人的主页,这样不太好吧哈哈,不过分数给的真猛!坐观你给谁分数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式