|
Param([string] $file) |
|
|
|
Function SetClipboard() |
|
{ |
|
Param([string] $text) |
|
|
|
while (1 -eq 1) |
|
{ |
|
try |
|
{ |
|
Set-ClipBoard $text |
|
$c = Get-ClipBoard |
|
|
|
if ($c -eq $text) |
|
{ |
|
return |
|
} |
|
} |
|
catch |
|
{ |
|
Start-Sleep -Milliseconds 10 |
|
} |
|
} |
|
} |
|
|
|
SetClipboard -text "waiting" |
|
|
|
Write-Host "waiting" |
|
|
|
$status = 0 |
|
|
|
while ($status -eq "waiting" -Or $status -ne "listening" -Or $status.Length -eq 0) |
|
{ |
|
try |
|
{ |
|
if($status.Length -eq 0) |
|
{ |
|
Write-Host "status 0" |
|
SetClipboard -text "waiting" |
|
} |
|
|
|
$status = Get-ClipBoard |
|
|
|
Start-Sleep -Milliseconds 100 |
|
} |
|
catch |
|
{ |
|
Write-Host $_.Exception.Message |
|
Start-Sleep -Milliseconds 1 |
|
} |
|
} |
|
|
|
$position = 0 |
|
$written = 0 |
|
$page = 0 |
|
$length = 500000 |
|
$data = [System.IO.File]::ReadAllBytes($file) |
|
|
|
Write-Host $data.Length |
|
SetClipboard -text $data.Length |
|
|
|
while ($written -lt $data.Length) |
|
{ |
|
$status = 0 |
|
|
|
while ($status -ne "listening" -Or $status.Length -eq 0) |
|
{ |
|
try |
|
{ |
|
$status = Get-ClipBoard |
|
|
|
if ($status.Length -eq 0) |
|
{ |
|
Start-Sleep -Milliseconds 100 |
|
} |
|
|
|
Start-Sleep -Milliseconds 25 |
|
|
|
Write-Host $status.Length |
|
} |
|
catch |
|
{ |
|
Write-Host $_.Exception.Message |
|
Start-Sleep -Milliseconds 1 |
|
} |
|
} |
|
|
|
$position = $length * $page |
|
$remaining = $data.Length - $position |
|
|
|
if ($remaining -ge 0) |
|
{ |
|
if ($remaining -lt $length) |
|
{ |
|
$buffer = New-Object byte[] $remaining |
|
|
|
for ($i=0; $i -lt $remaining; $i++) |
|
{ |
|
$buffer[$i] = $data[$position + $i] |
|
$written++ |
|
} |
|
|
|
$encoded = [Convert]::ToBase64String($buffer) |
|
} |
|
else |
|
{ |
|
$buffer = New-Object byte[] $length |
|
|
|
for ($i=0; $i -lt $length; $i++) |
|
{ |
|
$buffer[$i] = $data[$position + $i] |
|
$written++ |
|
} |
|
|
|
$encoded = [Convert]::ToBase64String($buffer) |
|
} |
|
|
|
|
|
Write-Host $written |
|
|
|
$sent = 0 |
|
|
|
while($sent -eq 0) |
|
{ |
|
try |
|
{ |
|
SetClipboard -text $encoded |
|
$sent = 1 |
|
} |
|
catch |
|
{ |
|
Write-Host $_.Exception.Message |
|
|
|
Start-Sleep -Milliseconds 25 |
|
} |
|
} |
|
|
|
$page++ |
|
} |
|
} |
|
|
|
Write-Host $written |