在c#中轮询一个url
Posted
技术标签:
【中文标题】在c#中轮询一个url【英文标题】:Polling for a url in c# 【发布时间】:2011-10-20 16:36:20 【问题描述】:我正在编写一个 Systray 应用程序,它会轮询以查看特定 url 是否在 IE 中打开,如果检测到它会弹出通知。
它不需要是实时的,只需要检测页面是否打开并提示操作。
以这种方式进行轮询的最有效方法是什么?我已经整理了一些代码来检查网站是否打开:
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
string filename;
foreach (SHDocVw.InternetExplorer ie in shellWindows)
filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals("iexplore"))
string[] urlParts = (ie.LocationURL.ToString()).Split('/');
string website = urlParts[2];
if (website == "myapp:8080") appOpen = true; ;
如果 appOpen 返回 true,则应该触发通知。
我想我需要处理这个问题,因为应用程序上还有一个菜单。我希望这是尽可能小的资源占用。或者,如果我可以使用一些观察者,这可能是一个更好的方法。 (虽然我也需要检查 Chrome 浏览器。
【问题讨论】:
所以,你有一些似乎可以工作的代码。问题是什么? 我有代码来做测试,但不知道最好的方法是让这个不断轮询。 (即目前它将运行一次,仅此而已。我希望它不断检查 url 是否打开。) 【参考方案1】:您可以使用Timer
并集成您的代码,以检查计时器滴答中的 URL。当然,如果 URL 在计时器的滴答声之间打开然后关闭,您将不会知道。
【讨论】:
以上是关于在c#中轮询一个url的主要内容,如果未能解决你的问题,请参考以下文章