1. 程式人生 > 實用技巧 >PowerShell呼叫大漠外掛(其它com元件)

PowerShell呼叫大漠外掛(其它com元件)

  在Windows日常的運維當中,很少有需要直接操作前端GUI,大多數情況下都是直接後臺操作。

  可是有些個別情況,總是需要模擬滑鼠鍵盤點一點,按一按的情況。

  PowerShell做為微軟Windows下最強的指令碼語言,像自動化操作這種功能肯定也是需要能實現的才是,畢竟是親兒子。

  網上baidu出來的很多技術知識實在是不敢恭維,好在有Google,幫忙解疑了不少。

  在國內,關於自動化操作,我的第一個想法就是直接呼叫第三元件,像大漠外掛,這種前人已經造好輪子,我們能直接拿來使用真是一件幸事。

  在PowerShell呼叫第三方元件,可以使用New-Object這個cmdlet。檢視這個命令的幫助文件可以發現,這個命令可以建立一個.NET Framework或COM物件的例項

New-Object
   [-TypeName] <String>
   [[-ArgumentList] <Object[]>]
   [-Property <IDictionary>]
   [<CommonParameters>]
New-Object
   [-ComObject] <String>
   [-Strict]
   [-Property <IDictionary>]
   [<CommonParameters>]

  對於我們想要呼叫大漠外掛使用這個命令就對了。

  首先,可以直接網上下載大漠外掛3.1233(這個是免費版本),一般都會有附帶大漠介面說明.chm,裡面有關於這個外掛的各種說明,其它的外掛也差不多是這個原理

  然後,根據幫助文件說明,我們把大漠外掛手動註冊到系統裡面,%path%根據系統的檔案路徑對應修改

regsvr32 /s %path%\dm.dll

  最後,在PowerShell裡面直接進行呼叫

$dm = New-Object -ComObject dm.dmsoft
dm.ver()

  像這個就是輸出大漠的版本號.

但是,在實際操作當可能會出現這樣的錯誤:

上面明明已經通過regsvr32註冊進去了,怎麼還是出現沒有註冊類這樣的錯誤提示呢?

也是折騰了許久才想明白,我自己使用的作業系統是使用64位的作業系統,預設執行的PowerShell也是64位的,而大漠外掛3.1233這個版本是32位!!!!。

對於PowerShell,64位認不到32位的註冊類。明白了這個原由之後,我們就可以很輕鬆的通過使用系統自帶的32位PowerShell來呼叫大漠外掛了。

32位的PowerShell可以在這邊開啟,在這邊可能會出現安全提示,直接選Yes就可以

再次通過呼叫就能正常顯示對com元件的呼叫了