2013-01-20 77 views
1

我設法使用com1.2.3庫,但我只能使用excel,如果它已經打開。Ole32 createObject「excel.application」失敗win7 64bits

我不知道爲什麼這段代碼不起作用;

main = coRun $ do 
    idEx <- createObject "Excel.Application" 

我在cmd中得到這個錯誤:

*** Exception: ComException {comException = ComError (-2147467262), 
comExceptionMsg = "(0x80004002) This interface is not supported\r\n"}. 

,我讀了在Win7有可能從COM32推出64B應用的可能性。那是對的嗎?

任何人都有一個工作代碼,將從win7推出excel?

回答

1

好的我找到了。我在這裏發帖,因爲有人可能對解決方案感興趣,並可能有靈感。我讀的地方,而不是createObject,應該使用coCreateInstance。 所以下面的代碼應該可以防火excel

import System.Win32.Com 
import System.Win32.Com.Automation 

iidIDispatch_unsafe = mkIID "{00020400-0000-0000-C000-000000000046}" 

newExcel = coRun $ do 
    clsidExcel <- clsidFromProgID "Excel.Application" 
    pIunknown <- coCreateInstance clsidExcel Nothing LocalProcess iidIDispatch_unsafe 
    let pExl = castIface pIunknown :: IDispatch() 
    propertySet "Visible" [inBool True] pExl 
相關問題