XPCOM错误

问题描述:

我使用GeckoFX 29.0与AutoJSContext,当我启动我的应用程序,它给了我下面的错误:XPCOM错误

Xpcom.Initialize must be called before using of any xulrunner/gecko-fx services 

我明白,我必须初始化XPCOM调用AutoJS之前,但在我的代码XPCOM(xullrunner)被命名为“GeckoFxError”

Sub New() 
     InitializeComponent() 

     Gecko.Xpcom.Initialize(Environment.CurrentDirectory + "/xulrunner") 
     Gecko.GeckoPreferences.Default("extensions.blocklist.enabled") = False 
     Timer1.Enabled = True 
    End Sub 
    Sub New1() 
     Dim _memoryService = Xpcom.GetService(Of nsIMemory)("@mozilla.org/xpcom/memory-service;1") 
     _memoryService.HeapMinimize(False) 
    End Sub 

    Private Sub GeckoFXerror(sender As Object, e As Gecko.JavascriptErrorEventArgs) Handles GeckoWebBrowser1.JavascriptError 
     Dim text As String = "window.alert = function(){};" 
     Dim text2 As String = "window.confirm = function(){};" 
     Dim text3 As String = "window.open = function(){};" 
     Dim text4 As String = "window.prompt = function(){};" 
     Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext) 
      Dim result As String = "" 
      context.EvaluateScript(text, result) 
     End Using 
     Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext) 
      Dim result As String = "" 
      context.EvaluateScript(text2, result) 
     End Using 
     Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext) 
      Dim result As String = "" 
      context.EvaluateScript(text3, result) 
     End Using 
     Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext) 
      Dim result As String = "" 
      context.EvaluateScript(text4, result) 
     End Using 
    End Sub 

感谢您的帮助,我认为这很容易解决,但我还没有找到任何解决方案不止一个小组前初始化小时

在致电InitializeComponent()之前放上Gecko.Xpcom.Initialize(Environment.CurrentDirectory + "/xulrunner"),它应该可以工作。

+1

我很久以前解决了这个问题,但是也很感谢 –