我有一個系統通過WSF啓動50個左右的VBS腳本,需要等到系統的另一部分連接到它們,然後它們充當服務器,直到對方斷開連接,然後它們退出並重新啓動。在多個WSF進程中共享Excel.Application可執行文件?
對於初始化目的,它們都使用了EXCEL.EXE閱讀了大量的電子表格中的參數,通過
Set objExcel = CreateObject("Excel.Application")
我們不能有同時運行50個EXCEL.EXEs,所以重新啓動將被順序化,因此應該永遠不會有多個EXCEL.EXE運行:通常爲零,因爲它們僅用於15-20秒,然後纔會釋放。
但是有時候出錯了,WSF腳本退出了,並且EXCEL.EXE開始停留在那裏。所以我們確實會看到多達十幾個EXCEL.EXE流程。
我的問題是關於使用GetObject()
而不是CreateObject()
。是否有可能使用GetObject()
,如果已經有EXCEL.EXE運行,它會使用那個而不是啓動一個新的?如果是的話,還需要其他什麼步驟?
這裏還有一個補充問題,那就是爲什麼EXCEL.EXE在啓動它們的VBS退出後仍然存在,但我可以想象VBS可以退出(或被殺死)的方式,從而允許這樣做。
請注意,這個問題也部分是關於EXCEL.EXE的重新進入,我沒有關於它的信息。
我不是這些腳本的作者,就外部對象而言,我不太擅長VBS,所以我在這裏提出一個微不足道的問題是完全可能的。
你有沒有看過[如何在VBScript中使用GetObject](http://stackoverflow.com/questions/1193952/how-to-use-getobject-in-vbscript),以獲得您應該運行的實例能夠做一些事情,比如Set objExcel = GetObject(,「Excel.Application」)'。 – Lankymart
驅車者是否會解釋他們在這個問題上遇到的困難? – EJP