是的,有些人会说“你疯狂使用asp表格中的winforms控件”......我认为他们是对的。但我会说......“我不是唯一一个!!,看一看”
因此...
做一些类似上一个链接的东西。我做了以下事情:
使用System; 使用System.Threading; 使用System.Windows.Forms;
命名空间XXXX.aspx.Print { public partial class Drucker:System.Web.UI.Page { private ManualResetEvent mre = new ManualResetEvent(false);
protected void Page_Load(object sender, EventArgs e)
{
Threading();
}
private void Threading()
{
Thread t = new Thread(new ThreadStart(GoAhead));
t.SetApartmentState(ApartmentState.STA);
t.Start();
mre.WaitOne();
t.Abort();
}
private void GoAhead()
{
DateTime time = DateTime.Now;
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate(Request.UrlReferrer.ToString());
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
while (true)
{
Thread.Sleep(0);
TimeSpan elapsedTime = DateTime.Now - time;
if (elapsedTime.Seconds >= 13)
{
mre.Set();
}
System.Windows.Forms.Application.DoEvents();
}
}
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser webBrowser = (WebBrowser)sender;
if (e.Url.AbsolutePath != webBrowser.Url.AbsolutePath) return;
webBrowser.Print();
}
}
}
现在...
没有触发DocumentCompleted事件(也没有ProgressChanged),我尝试了下一个事件:
顺便说一句,我在64位工作,Win7 ...... 所以在我格式化整台电脑之前...... 有什么建议吗?
答案 0 :(得分:0)
WebBrowser永远不会被它没有的ActiveX容器激活。首先尝试将它放在表格上。
顺便说一下,你知道你是in the unsupported territory when you use WinInet, the network layer of webbrowser control, in a Windows Service,对吧?