Invoke-WinApi

Выполнить WinApi функцию
Параметры

  • -Return Тип возвращаемого значения (Bool по умолчанию)

  • -Dll Имя библиотеки, содержащей вызываемую функцию (User32.dll по умолчанию)

  • -Method Имя вызываемой функции

  • -Override Повторное определение функции

  • -Charset Кодировка символов

    4 по умолчанию
    3 по умолчанию для ...W
    2 по умолчанию для ...A

    CharsetЗначение
    4Auto
    3Unicode
    2ANSI

Примеры

  • Запустить блокнот

    Wake up, Neo, select all

    Invoke-WinApi -Dll Shell32 -Re Int ShellExecute(
    0,
    "runas",
    "notepad.exe",
    "",
    "C:\Windows\System32",
    1
    )
  • Получить параметры системы

    Wake up, Neo, select all

    New-Struct SYSTEM_INFO (
    [uint16] ,"wProcessorArchitecture",
    [uint16] ,"wReserved",
    [uint32] ,"dwPageSize",
    [IntPtr] ,"lpMinimumApplicationAddress",
    [IntPtr] ,"lpMaximumApplicationAddress",
    [UIntPtr],"dwActiveProcessorMask",
    [uint32] ,"dwNumberOfProcessors",
    [uint32] ,"dwProcessorType",
    [uint32] ,"dwAllocationGranularity",
    [uint16] ,"wProcessorLevel",
    [uint16] ,"wProcessorRevision"
    )

    $sysInfo = [SYSTEM_INFO]::new()

    Invoke-WinApi -Re Void -Dll Kernel32 GetNativeSystemInfo([ref]$sysInfo)

    $sysInfo