gpt4 book ai didi

.net - Powershell反射查找功能

转载 作者:行者123 更新时间:2023-12-03 00:31:37 28 4
gpt4 key购买 nike

[Windows.Forms.Form].
Assembly.GetType(
'System.Windows.Forms.UnsafeNativeMethods'
).GetMethod('GetAsyncKeyState').Invoke($null,
@(
0x09 # Tab key code
)
)
我找到了这段代码。有用。我的问题是如何找到函数存储在哪里?
图片,我想用 GetAsyncKeyState方法而不知道上面的代码:如何找出哪个程序集中的哪种类型提供了这种方法?
可能有一些功能,如:
function Get-win32FunctionLocation($fName){
#...
}

Get-win32FunctionLocation 'GetAsyncKeyState'

<#Output:

location : [Windows.Forms.Form]
TypeName : System.Windows.Forms.UnsafeNativeMethods

#>
或者可能是此信息的其他来源...
附言
我知道 Add-Type ,但我的兴趣在于这段代码。

最佳答案

您可以枚举所有已加载程序集中的所有类型,如下所示:

$methodName = 'GetAsyncKeyState'

$appDomain = [System.AppDomain]::CurrentDomain
$assemblies = $appDomain.GetAssemblies()
$allTypes = $assemblies.GetTypes()
$allMethods = $allTypes.GetMethods([System.Reflection.BindingFlags]'Static,Instance,Public')

$targetMethods = $allMethods.Where({$_.Name -eq $methodName})
$targetMethods现在将包含任何名为 GetAsyncKeyState 的公共(public)方法

关于.net - Powershell反射查找功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64417632/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com