有没有精通WebBrowser和异步的高手?请进 本帖最后由 starj1 于 2009-10-03 09:06:02 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没看解决方案,你看下DCOM方面的技术能帮到你否?比WEBBORWER要底层些。 从来不使用webbrowser。如果需要让web服务器听你的指挥,针对http编程(HttpWebRequest)编程就可以了。 你可以不可以先在另外一个进程登录,然后再将结果直接传递给你的webbroser的环境变量中? 那样的话,让我编程解释Html?晕了...不懂你指的结果是什么?另外,这个登录器的目的是:可以在登录完以后直接玩游戏,没时间的时候可以挂机.所以你的建议在这个解决方案里是不合适的.谢谢. 你的代码大致看了一下,在hardwareop。类里,取cpu温度的代码有问题,可能是查询语句问题,返回的managercollection 无法foreach我对wmi不熟..,具体的不好说 使用webhttprequest和使用webbrowser的本质区别:前者需要自己进行网页中的运算,比如script,后者则不需要如果目标网页的script过多过大,仅仅使用webhttpreqeust,会非常麻烦。对http协议比较熟悉的话,可以试一下这个方法:抓尾巴sniffer某个过程,比如摘果子的过程,看摘果子向webserver发出了什么样的请求,再根据这个请求,结合目标网页,来分析,这个请求,是否经过了网页运算,如何运算。这样可减轻分析网页的过程,毕竟很多script代码都是其他功能所需。 根据经验来看使用sniffer工具,抓尾巴的方法,get request很快就能搞定post request,100个左右的input,大概需要半天能搞定如此效率可以接受。需要技术基础:能根据所需功能对目标网页进行改写(调试时大大需要),script中级水平吧 我在2005环境里使用Hardwareop那个类没问题的.如果出现问题可以把这个类的引用删掉再调试,不会影响解决方案的最终目标.谢谢.我对sniffer七窍通了六窍…… /// <summary> /// 取得所有CPU的温度 /// </summary> /// <returns></returns> public Int32[] GetCPUTemprature() { System.Management.ManagementObjectCollection moc = mos.Get(); System.Collections.ArrayList alT = new System.Collections.ArrayList(); foreach (System.Management.ManagementObject mo in mos.Get()) alT.Add((Convert.ToInt32(mo.GetPropertyValue("CurrentTemperature")) - 2732) / 10); Int32[] iTemperature = new Int32[alT.Count]; alT.CopyTo(iTemperature); return iTemperature; }调试时foreach 报异常,看了看这个方法的所有引用,就发现一个地方用到,而且只用了第一个索引。上面的方法貌似没必要遍历所有CPU //取得CPU温度 int iCPUTemerature = hoCPUTemperature.GetCPUTemprature()[0]; 所有对GetCPUTemprature()的引用都可以忽略,那只是解决方案里附加的东西,不是主要的. private int GetLabelIndex(System.Text.RegularExpressions.Regex reLabel, string[] sScriptContent, string sLabel) { int I = -1; while (I < sScriptContent.Length) { System.Text.RegularExpressions.Match match = reLabel.Match(sScriptContent[I]); if (match != null) if (match.Groups["Label"].Value == sLabel) break; } return I; }这个函数报的错。错误因为你搞了个-1。不是多大的错误。不过你的开发有问题。try catch用的太少了。五行代码一个断言,在最底端抛出错误。(一个C#超高手说的。)你的代码里好象不只是这一个错误。我在运行时,还发现有错误。在程序退出时。 如果Label1.Text显示的某个字段的文字太多,显示前20个字符 C#菜鸟望高手指教! (在线等待 + 满分)关于批量增加及更新的问题 petshop是个什么东西??? 关于winform里面combobox绑定数据后 再添加一列请选择项 如何将system.windows.forms.datagrid中的checkbox设置为灰色。 超级挑战请大家来啊 英文版的SQLSERVER,用C#怎么读取里面汉字字段? 小弟入门的简单问题 大家帮帮忙!如何获取已选择文件的文件名?(再线等待) 请问 网页调用ACTIVEX插件 怎么实现插件自动更新? 高手帮忙
你看下DCOM方面的技术能帮到你否?
比WEBBORWER要底层些。
那样的话,让我编程解释Html?晕了...
不懂你指的结果是什么?另外,这个登录器的目的是:可以在登录完以后直接玩游戏,没时间的时候可以挂机.所以你的建议在这个解决方案里是不合适的.谢谢.
我对wmi不熟..,具体的不好说
抓尾巴sniffer某个过程,比如摘果子的过程,看摘果子向webserver发出了什么样的请求,再根据这个请求,结合目标网页,来分析,这个请求,是否经过了网页运算,如何运算。这样可减轻分析网页的过程,毕竟很多script代码都是其他功能所需。
使用sniffer工具,抓尾巴的方法,get request很快就能搞定
post request,100个左右的input,大概需要半天能搞定如此效率可以接受。需要技术基础:能根据所需功能对目标网页进行改写(调试时大大需要),script中级水平吧
我在2005环境里使用Hardwareop那个类没问题的.如果出现问题可以把这个类的引用删掉再调试,不会影响解决方案的最终目标.谢谢.
我对sniffer七窍通了六窍……
/// 取得所有CPU的温度
/// </summary>
/// <returns></returns>
public Int32[] GetCPUTemprature()
{
System.Management.ManagementObjectCollection moc = mos.Get();
System.Collections.ArrayList alT = new System.Collections.ArrayList();
foreach (System.Management.ManagementObject mo in mos.Get())
alT.Add((Convert.ToInt32(mo.GetPropertyValue("CurrentTemperature")) - 2732) / 10);
Int32[] iTemperature = new Int32[alT.Count];
alT.CopyTo(iTemperature);
return iTemperature;
}调试时foreach 报异常,看了看这个方法的所有引用,就发现一个地方用到,而且只用了第一个索引。
上面的方法貌似没必要遍历所有CPU
//取得CPU温度
int iCPUTemerature = hoCPUTemperature.GetCPUTemprature()[0];
所有对GetCPUTemprature()的引用都可以忽略,那只是解决方案里附加的东西,不是主要的.
{
int I = -1;
while (I < sScriptContent.Length)
{
System.Text.RegularExpressions.Match match = reLabel.Match(sScriptContent[I]);
if (match != null)
if (match.Groups["Label"].Value == sLabel)
break;
}
return I;
}这个函数报的错。错误因为你搞了个-1。不是多大的错误。不过你的开发有问题。
try catch用的太少了。
五行代码一个断言,在最底端抛出错误。(一个C#超高手说的。)
你的代码里好象不只是这一个错误。
我在运行时,还发现有错误。
在程序退出时。