你能在WCF服务下运行WebBrowser吗

本文关键字:运行 WebBrowser 服务 WCF | 更新日期: 2023-09-27 18:27:13

我目前正试图将屏幕抓取程序(c#forms应用程序)转移到WCF服务。

屏幕截图程序使用WebBrowser从几个没有API的页面获取信息。我想知道您是否可以在服务中运行WebBrowser,更不用说在表单中了。我目前正在XP上开发,将在Server 2003上发布。

目前,在运行单元测试时,我只能看到WebBrowser(如果它是在"单元测试"侧创建的),即使这样,我也需要手动弹出MessageBox,以使Web浏览器停止不使用空白屏幕导航。

由于存在多线程问题,程序正在移动和拆分。

你能在WCF服务下运行WebBrowser吗

您最好使用Phantom.js这样的无头浏览器:http://www.phantomjs.org/.它提供了重要的功能,并且可以像常规命令行程序一样在任何需要的地方执行。

考虑到这一点,请意识到WebBrowser控件的每个实例实际上都是Internet Explorer的一个实例。然后,您的问题变成了让一个服务启动多个Internet Explorer实例。

但Internet Explorer是一个交互式应用程序。它希望在拥有焦点时控制键盘和鼠标。

  • 在服务器中运行时,您希望它控制哪个键盘和鼠标
  • 你的服务器有多少键盘和鼠标

您可以为该服务找到一些方法来启动远程桌面连接并启动Windows窗体应用程序。然后,您可以让Windows窗体应用程序承载WCF服务,并且这两个服务可以相互通信。我见过这样的事情,当需要自动化一个无法成为服务的专业交互式程序时。