我對COM和Windows編程/腳本一般都很陌生。我想要做的是編寫Windows Live Writer的腳本;根據文檔之前,我可以打電話通過PowerShell和腳本編寫Windows Live Writer加載類型庫
$o = New-Object -c WindowsLiveWriter.Application
我需要先加載TLB,所以我應該叫add-type
命令,遺憾的是它失敗:
PS C:\Users\NoWhereMan> add-type windowslivewriter.application
Add-Type : c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1) : A namespace does not directly contain members such
as fields or methods
c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1) : >>> windowslivewriter.application
At line:1 char:9
+ add-type <<<< windowslivewriter.application
+ CategoryInfo : InvalidData: (c:\Users\NoWher...elds or methods:CompilerError) [Add-Type], Exception
+ FullyQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand
Add-Type : Cannot add type. There were compilation errors.
At line:1 char:9
+ add-type <<<< windowslivewriter.application
+ CategoryInfo : InvalidData: (:) [Add-Type], InvalidOperationException
+ FullyQualifiedErrorId : COMPILER_ERRORS,Microsoft.PowerShell.Commands.AddTypeCommand
爲它的價值,我m跑Windows7的64
編輯:是問題的關鍵,我需要的x64運行PSH作爲x86的過程
感謝
您不應該爲COM對象使用添加類型,而應該從對象IDispatch接口推斷成員。 AFAIK添加類型僅用於添加新的.NET程序集。 – tyranid 2010-02-14 11:09:37
當我向理查德評論時,由於我使用的是64位PSH過程,我從新對象中得到的錯誤誤導了我,這個新對象實際上是拋出的。謝謝! – 2010-02-14 11:15:07