powershell을 사용하여 버퍼에서 두 스크린샷을 어떻게 비교할 수 있나요?

powershell을 사용하여 버퍼에서 두 스크린샷을 어떻게 비교할 수 있나요?

나는 찾았다이 조각분당 스크린샷을 찍을 수 있도록 루프에서 잘 작동하고 있습니다. 다음을 통해 결과를 해시하고 두 최신 스크린샷의 변경 사항을 비교할 수 있습니다.이 게시물: (Get-FileHash $fileA).hash -ne (Get-FileHash $fileC).hashIf 문 안에 있습니다.

스크린샷을 HDD에 저장하는 대신 버퍼에 있는 스크린샷을 참조하려고 했습니다. 즉, 스크린샷을 버퍼에 보관한 다음 해당 조각이 저장되는 동안 비교하고 싶다는 의미입니다.

답변1

사용중인 코드로는 불가능합니다.

$File = "E:\temp\myscreenshot.bmp"
Add-Type -AssemblyName System.Windows.Forms
Add-type -AssemblyName System.Drawing

# Gather Screen resolution information
$Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen

# .. monitor width in pixels..
$Width = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width

# .. monitor height in pixels..
$Height = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height

# .. Capture points
$Left = 0 # ..monitor starting left pixel..
$Top = 0 # ..monitor starting top pixel, normally zero..

가난한 사람의 디버그 - 변수 압착을 사용하여 할당 및 화면 출력 결과 전달 전에 가장자리 파렌 제거

# Create bitmap using the top-left and bottom-right bounds
($bitmap = New-Object System.Drawing.Bitmap $Width, $Height)

# Create Graphics object
($graphic = [System.Drawing.Graphics]::FromImage($bitmap))

# Capture screen
($graphic.CopyFromScreen($Left, $Top, 0, 0, $bitmap.Size))

# Save to file
$bitmap.Save($File)

위 출력을 통해 물리적/파일 시스템과 관련된 어떤 것도 사용 사례에 맞게 얻을 수 있는 것을 제공하지 않는다는 점에 유의하세요.

물론 코드를 그대로 사용하고, 이미지 파일 이름을 늘리고, 비교를 수행하고, 삭제할 항목을 결정할 수 있습니다.

FileSystem cmdlet(예:...Get-FileHash등...)은 직렬화된 파일에서 작업 중임을 의미합니다.

파일 가져오기 해시

모듈:Microsoft.PowerShell.Utility

지정된 해시 알고리즘을 사용하여 파일의 해시 값을 계산합니다.

OP 업데이트

개인적으로 저는 시도한 적도 없고 필요한 사용 사례도 없었습니다. 그래서 그것은 개념이지만 가능합니다. 이 시점에서 제가 이해하는 모든 것과 관련된 모든 추측입니다. 특히 계획한 모든 작업을 수행한 후에 이를 해싱하고 직렬화합니다. Filesystem cmdlet은 설계상 파일 시스템에서만 작동합니다.

물건을 버퍼에 넣는 것에 관해서. Trevor Sullivan의 블로그 게시물로 안내해 드립니다.여기, 그는 PowerShell에서 바이트 배열 초기화를 시연합니다.

때로는 새 버퍼를 바이트 배열로 초기화해야 하는 경우도 있습니다. 예를 들어 System.Random 클래스의 NextBytes() 메서드를 사용하여 임의 데이터를 생성하려면 해당 메서드에 쓸 바이트 배열 버퍼를 전달해야 합니다. PowerShell에서 바이트 배열을 만드는 것은 즉시 명확하지 않을 수 있습니다.

관련 정보