C# 中如何实现对浏览器的主页进行修改?
我用c#编了个winform的程序,如何对火狐浏览器和360浏览器的主页进行修改??请高手指教,不胜感谢!!恩,那个360浏览器的注册表里没有对主页的修改,也就是我修改了...
我用c#编了个winform的程序,如何对火狐浏览器和360浏览器的主页进行修改??请高手指教,不胜感谢!!
恩,那个360浏览器的注册表里没有对主页的修改,也就是我修改了下360的主页www.abcd.com,在注册表里查不到www.abcd.com 展开
恩,那个360浏览器的注册表里没有对主页的修改,也就是我修改了下360的主页www.abcd.com,在注册表里查不到www.abcd.com 展开
6个回答
展开全部
修改火狐浏览器和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
找个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
展开全部
主页进行修改其实就是改注册表。
可以学一下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注册表项是否存在,这一方法在删除注册表时已经存在,在新建一注册表项时也应有相应判断;
可以学一下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注册表项是否存在,这一方法在删除注册表时已经存在,在新建一注册表项时也应有相应判断;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主页就是修改注册表:
HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main下的Default_Page_URL的键值即可,
HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main下的Default_Page_URL的键值即可,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的办法是:
如果是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的容我再想想
如果是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的容我再想想
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我建议兄弟别修改别人的主页,这样不太好吧哈哈,不过分数给的真猛!坐观你给谁分数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询