有沒有人有關於如何在Windows應用程序沙箱ActiveX組件的任何想法,這樣,如果它崩潰它不搞垮整個應用程序與它一起?我可以看到Google使用Flash來做這件事。它是如何完成的?沙箱ActiveX組件
我覺得他們舉辦出來proc和那麼只有在應用程序中只顯示用戶界面。這可能嗎?
我很感興趣,在C#窗口應用程序這樣做。
有沒有人有關於如何在Windows應用程序沙箱ActiveX組件的任何想法,這樣,如果它崩潰它不搞垮整個應用程序與它一起?我可以看到Google使用Flash來做這件事。它是如何完成的?沙箱ActiveX組件
我覺得他們舉辦出來proc和那麼只有在應用程序中只顯示用戶界面。這可能嗎?
我很感興趣,在C#窗口應用程序這樣做。
我最初的想法是,這是不可能的。該瀏覽器的Flash沙箱是谷歌和Adobe之間的合資企業,其中的Adobe不得不做了很多工作to associate the Flash plugin with the sandbox的:
編輯
退房這樣的回答:Detecting application hangs with ActiveX controls in .Net
這可能是你是什麼尋找。
此外,如果你是依靠從ActiveX的UI,你可能想看看這個:How do I host an application window as a child of a window belonging to another process?
聲明:我沒有這樣做我自己,所以 - 任何人 - 請隨時糾正我的假設。
谷歌瀏覽器設置,但不管它是什麼插件,如果它崩潰,它不走下來的全過程。事實上,他們根本不使用Flash的ActiveX版本......他們使用NPAPI版本,與Firefox和Safari相同。
是Chrome瀏覽器使用,我以爲你也可以使用,但可能會非常棘手的伎倆,是他們推出的插件在一個單獨的進程。實際上,Firefox 4已經開始做同樣的事情(如果你看看你的任務欄,你會在Flash運行時看到Firefox的plugin-container.exe進程; Chrome只會啓動更多的chrome.exe進程)。由於這是一個獨立的過程,因此它可能會崩潰,並且不會取出您的應用程序;你只是發現其他進程現在已經消失並採取相應的行動。
反正我從來沒有做過在C#中的多個進程,但我認爲這是可能的。這是「沙盒」最常用的方法,就像AFAIK。我可以用C++(而且)來完成,但C#可能會更棘手。
謝謝西門子。我不知道這是一個協作努力。實際上有意義。 – bobbyalex 2011-04-08 11:31:47
但我們當然在談論瀏覽器與Flash的鏈接,以防止惡意代碼。您的需求稍有不同。 – 2011-04-08 11:36:20
你想要的是在你的應用程序的一個窗體中必須有一個特定的UI區域被隔離到一個不同的進程中,同時你的應用程序可以被充分控制,這樣你就可以檢測到託管窗口後面的進程是「掛」。我對嗎? – 2011-04-08 11:44:18