PowerShell에서 시스템 DLL의 함수를 호출하고 반환 매개 변수의 값을 사용하는 방법

PowerShell에서 시스템 DLL의 함수를 호출하고 반환 매개 변수의 값을 사용하는 방법


GetWindowText 함수로 창 제목을 얻을 수 있습니다. 세 개의 인자가 있습니다. 그 중 두 개는 입력 인자, 창 핸들, 제목 문자열의 최대 길이, 출력 인자, 창 제목 텍스트입니다.우리는 텍스트의 유형을 시스템으로 정의했다.Text.StringBuilder, 함수 설명서에 System이라고 쓰여 있습니다.Text.StringBuilder lpString은 함수를 호출할 때도 System을 정의합니다.Text.StringBuilder 형식의 변수: $Title = New-Object - TypeName System.Text.StringBuilder 호출 함수$FindWindow::GetWindowText($WindowsHandle, $Title, 1024).이후 $Title 창 제목의 텍스트가 생겼지만, 형식은 문자열이 아닙니다. 따라서 마지막으로 변환을 진행해야 합니다: $Title.ToString() .
$signature = @"
[DllImport("user32.dll")]
public static extern Int32 GetWindowText(IntPtr hWnd, System.Text.StringBuilder lpString, Int32 nMaxCount);
"@

Function Find-Window{
    Param( $WindowsHandle )

    $FindWindow = Add-Type -memberDefinition $signature -name "Win32GetWindow" -namespace Win32Functions -passThru

    $Title = New-Object -TypeName System.Text.StringBuilder
    $FindWindow::GetWindowText($WindowsHandle, $Title, 1024)
    $Title.ToString()
 }

좋은 웹페이지 즐겨찾기