Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以向powershell中的自定义对象添加事件?_Powershell - Fatal编程技术网

是否可以向powershell中的自定义对象添加事件?

是否可以向powershell中的自定义对象添加事件?,powershell,Powershell,我正在powershell中创建自定义对象。 此对象必须引发事件,但无法使用new event CMDLET指定事件名称。 我尝试使用add-member cmdlet添加事件,但powershell返回一个问题,指出“无法将事件分配给PSObject”。 还有其他方法执行此操作吗? 提前谢谢。 Germano-编辑,抱歉误读了问题。做了一个快速搜索,发现了 cmdletRegister EngineEvent和New Event可以帮助您注册和触发自己的事件: 对于新事件,您必须指定 -So

我正在powershell中创建自定义对象。 此对象必须引发事件,但无法使用new event CMDLET指定事件名称。 我尝试使用add-member cmdlet添加事件,但powershell返回一个问题,指出“无法将事件分配给PSObject”。 还有其他方法执行此操作吗? 提前谢谢。
Germano

-编辑,抱歉误读了问题。做了一个快速搜索,发现了


cmdlet
Register EngineEvent
New Event
可以帮助您注册和触发自己的事件:

对于
新事件
,您必须指定

  • -SourceIdentifier
    :您自己的标识符
你应该说明

  • -Sender
    :发出事件的对象
  • -EventArguments
    :参数数组
  • -MessageData
    :参数对象
以下是一个例子:

New-Event -SourceIdentifier "MyOwnEvent" -EventArguments "A Param"
Cmdlet
Register EngineeEvent
允许您的代码订阅Windows PowerShell引擎事件,也可以订阅由
新事件触发的事件

$evt1 = Register-EngineEvent -SourceIdentifier "MyOwnEvent" -Action {[console]::Beep(500,500)}
因此,现在您的对象可以有一个名为Event1的note属性,该属性的值为“MyOwnEvent”。一段代码可以使用
register EngineEvent
注册到此事件,您的对象可以使用
New event
触发此事件

$evt1 = Register-EngineEvent -SourceIdentifier "MyOwnEvent" -Action {[console]::Beep(500,500)}