有多种解决方案,不知道哪一个是最适合你的...
- 继续用原来的方法
在你的应用程序了
- 嵌入Web浏览器控件在其他的答案
建议
- 编程尽一切
对于#3你可能想看看这里的“幕后”:http://geekswithblogs.net/rakker/archive/2006/04/21/76044.aspx
如果你想要与#1一起工作 - 这是更棘手的,因为你需要控制外部应用程序,不同的浏览器会有不同的行为。
在处理一个“用户不友好”应用程序时,我使用“javascript:”协议和下面的代码作为默认浏览器。请注意,这不是“生产就绪”的代码。没有错误处理,用户可以切换焦点从启动的浏览器,或使用浏览器离开,不 “的javascript:” 协议支持等
static void Main()
{
Settings s = Settings.Default;
Process.Start(s.URL1);
Thread.Sleep(s.Delay1);
SendKeys.SendWait("%D");
Thread.Sleep(100);
SendKeys.SendWait(EncodeForSendKey(s.URL2));
SendKeys.SendWait("{ENTER}");
}
public static string EncodeForSendKey(string value)
{
StringBuilder sb = new StringBuilder(value);
sb.Replace("{", "{{}");
sb.Replace("}", "{}}");
sb.Replace("{{{}}", "{{}");
sb.Replace("[", "{[}");
sb.Replace("]", "{]}");
sb.Replace("(", "{(}");
sb.Replace(")", "{)}");
sb.Replace("+", "{+}");
sb.Replace("^", "{^}");
sb.Replace("%", "{%}");
sb.Replace("~", "{~}");
return sb.ToString();
}
- URL1:http://www.google.com
- URL2:的javascript:函数x() {document.all.q.value ='stackoverflow'; document.forms [0] .submit();} x();
为什么你有ASP.NET标记? – 2009-12-14 20:57:52
啊,对不起,只是习惯把大部分时间放在那里,删除它。 – onekidney 2009-12-14 21:03:39