CivicFactory 객체의이 NewCivicAddressReport 이벤트에 대한 이벤트 핸들러를 구현해야합니다. 이 다음 코드는, 명명 규칙 이벤트 핸들러를 사용하여 VBScript로 완벽하게 작동합니다 : PowerShell의 그러나PowerShell 2.0은 COM 이벤트 처리기를 지원합니까?
Dim CivicFactory
Set CivicFactory = WScript.CreateObject("LocationDisp.CivicAddressReportFactory", "CivicFactory_")
Function CivicFactory_NewCivicAddressReport(report)
MsgBox "Location changed!"
End Function
를 다음 코드가 실패 :
$CivicFactory = new-object -comObject LocationDisp.CivicAddressReportFactory
Register-ObjectEvent $CivicFactory -EventName "NewCivicAddressReport" -Action ({ echo "hello" })
오류 메시지입니다 : 등록-ObjectEvent을 : 등록 할 수 없습니다 행사. 이름이 'NewCivicAddressReport'인 이벤트가 없습니다.
$CivicFactory.add_NewCivicAddressRerport({"hello"})
도 시도했는데 실패했습니다.
그래서 $CivicFactory | Get-Member
으로 바뀌 었습니다. 그 방법과 속성은 있지만 이벤트는 반환하지 않았습니다.
그래서 PowerShell이 COM 이벤트를 잘 지원하지 않는다고 생각됩니다. pseventing 스냅인을 설치하고 Get-EventBinding CivicFactory -IncludeUnboundEvents | Format-Table -Auto
을 시도했습니다. 아무 것도 반환하지 않았습니다. 이는 시스템에이 개체에 이벤트가 있다고 생각하지 않는다는 의미입니다.
그래서 이제는 의심 스럽습니다. 개체에 이벤트 처리기를 바인딩하는 것이 가능합니까?
누구나 올바른 방법을 보여줄 수 있습니까?
업데이트하시기 바랍니다 -Oisin! SetACL의 COM 버전 (http://helgeklein.com/setacl)도 OP에서 설명한 문제로 어려움을 겪고 있습니다. –