我正在使用这样的内核函数:
$defText = '[DllImport("kernel32.dll")]public static extern uint SetThreadExecutionState(uint esFlags);'
$def = Add-Type -MemberDefinition $defText -PassThru -Namespace myNameSpace -Name myName
$def::SetThreadExecutionState(0)
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以通过名称空间和名称调用该方法(不使用 -PassThru)?
$defText = '[DllImport("kernel32.dll")]public static extern uint SetThreadExecutionState(uint esFlags);'
Add-Type -MemberDefinition $defText -Namespace myNameSpace -Name myName
myNameSpace::myName(0)
Run Code Online (Sandbox Code Playgroud)
当然它说没有找到该命令。是否可以通过名称空间和名称来调用方法?
按字面意思使用定义的类型,[myNameSpace.myName]如下所示:
$defText = '[DllImport("kernel32.dll")]public static extern uint SetThreadExecutionState(uint esFlags);'
Add-Type -MemberDefinition $defText -Namespace myNameSpace -Name myName
[myNameSpace.myName]::SetThreadExecutionState
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)OverloadDefinitions ------------------- static uint SetThreadExecutionState(uint esFlags)