通过PowerShell的Excel自动运行所有的例子开始这一行:
PS> $Excel = New-Object -Com Excel.Application
这似乎处理的Excel中的一个新的实例,例如,运行$Excel.Visiable = $true
会显示一个空的,空白的Excel窗口,而不是切换到现有的工作簿。
如果已经有运行Excel的一个实例,有没有连接到它的方法吗?
通过PowerShell的Excel自动运行所有的例子开始这一行:
PS> $Excel = New-Object -Com Excel.Application
这似乎处理的Excel中的一个新的实例,例如,运行$Excel.Visiable = $true
会显示一个空的,空白的Excel窗口,而不是切换到现有的工作簿。
如果已经有运行Excel的一个实例,有没有连接到它的方法吗?
Instead of the usual New-Object
-ComObject
excel.application us this
$excel = [Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application')
Rest stays the same.
One downside. You will only get the excel "instances" started by the same user that will initiate the ps1.
是的,你可以通过使用HWND [窗口句柄]访问COM对象本WIN32 API (AccessibleObjectFromWindow)。
(见A SO交样品这里使用经由C#此API的)
。
您可能必须写在C#中的装配和/或操纵的P / Invoke通过PowerShell的要求 。
你可以在它给一个镜头&看看怎么回事。