DotNetUtils.au3 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include-once
  2. #include <Array.au3>
  3. #include "DotNet.au3"
  4. Func DotNet_ListDomains()
  5. Local $pEnum, $pDomain, $oDomain
  6. Local $aDomains[100][2], $iDomains = 0
  7. Local $oRuntimeHost = DotNet_Start()
  8. $oRuntimeHost.EnumDomains( $pEnum )
  9. While Not $oRuntimeHost.NextDomain( $pEnum, $pDomain )
  10. $oDomain = ObjCreateInterface( $pDomain, $sIID__AppDomain, $sTag__AppDomain )
  11. $oDomain.get_FriendlyName( $aDomains[$iDomains][0] )
  12. $oDomain.get_BaseDirectory( $aDomains[$iDomains][1] )
  13. $iDomains += 1
  14. WEnd
  15. ReDim $aDomains[$iDomains][2]
  16. Return $aDomains
  17. EndFunc
  18. Func DotNet_ListDomainsEx()
  19. Local $aDomains = DotNet_ListDomains()
  20. _ArrayDisplay( $aDomains, ".NET Framework Domains", "", 0, Default, "Friendly Name|Base Directory to load assemblies" )
  21. EndFunc
  22. Func DotNet_ListAssemblies( $oAppDomain = 0 )
  23. Local $pAssemblies, $aAssemblies
  24. If Not $oAppDomain Then _
  25. $oAppDomain = DotNet_GetDefaultDomain()
  26. $oAppDomain.getAssemblies( $pAssemblies )
  27. AccVars_SafeArrayToArray( $pAssemblies, $aAssemblies )
  28. Local $nAsms = UBound( $aAssemblies ), $aAsmInfo[$nAsms][3], $oAssembly
  29. For $i = 0 To $nAsms - 1
  30. $oAssembly = ObjCreateInterface( $aAssemblies[$i], $sIID__Assembly, $sTag__Assembly )
  31. $oAssembly.get_GlobalAssemblyCache( $aAsmInfo[$i][0] )
  32. $oAssembly.get_FullName( $aAsmInfo[$i][1] )
  33. $oAssembly.get_Location( $aAsmInfo[$i][2] )
  34. Next
  35. Return $aAsmInfo
  36. EndFunc
  37. Func DotNet_ListAssembliesEx( $oAppDomain = 0 )
  38. Local $aAssemblies = DotNet_ListAssemblies( $oAppDomain )
  39. _ArrayDisplay( $aAssemblies, "Loaded Assemblies in Domain", "", 0, Default, "GAC|Assembly Full Name|Assembly Location" )
  40. EndFunc