※この記事の前準備として2020年8月3日の記事も読んでね。
先ず、CrenaHtml2jpg.exe って云うサイトサムネイル作成アプリと使用されるバッチプログラムやスクリプトは全部、C:\work\CrenaHtml2jpg-v1.20 にある想定。
そこで、PowerShellのスクリプト:capture.ps1 は、こんな感じ。
$process = Start-Process -FilePath “C:\work\CrenaHtml2jpg-v1.20\CrenaHtml2jpg.exe” -PassThru
$window = Get-UiaWindow -ProcessId
$process.Id $window | Get-UiaEdit -AutomationId ‘1010’ -Class ‘Edit’ -Name ‘http://www.yahoo.co.jp’ | `
Set-UIAControlText -Text $args[0];
$window | Get-UiaButton -Name ‘実行’ | Invoke-UiaButtonClick | Out-Null
$window | Get-UiaButton -Name ‘終了’ | Invoke-UiaButtonClick | Out-Null
このスクリプトはコマンドライン引数を1つ(キャプチャーするサイトのURL)を持つんスよ。
PS >cd C:\work\CrenaHtml2jpg-v1.20
PS >.\capture.ps1 http://www.wowow.co.jp/detail/017949
次にこのスクリプトを昨日(4月26日)の記事の通りに、PowerShellのスクリプト実行権限を緩めてスクリプトを実行し、また実行権限を戻すというバッチ処理を管理者権限で行うって云う話っすねぇ。それはこんなスクリプトを書くんスよ。
REM — 管理者権限があるかどうかチェック —————–
whoami /PRIV | find “SeLoadDriverPrivilege” >NUL
if not errorlevel 1 goto START
REM — ない場合は powershell 経由で自分自身を実行
powershell.exe -Command Start-Process “%~0 %~1” -Verb Runas goto :EOF
:START REM — ここからバッチ本来の処理 ——————————
cd “C:\work\CrenaHtml2jpg-v1.20”
powershell Set-ExecutionPolicy RemoteSigned
powershell .\capture.ps1 %1
powershell Set-ExecutionPolicy Restricted
1行目で管理者権限の有無をチェックし、なければPowershellコマンドを使って管理者権限でバッチプログラムを開き直す。管理者権限があればSTARTラベルに飛んで、バッチ処理本来のお仕事をするってぇ感じっすかねぇ。
次回はその4で、CrenaHtml2jpg.exeのInternet Explorerのエミュレーションモードをレジストリで最新のEdgeと同様に設定する方法についてっすよ。