PowerShellを使ってアプリの自動実行(その3)

※この記事の前準備として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と同様に設定する方法についてっすよ。

ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ!

コメントを残す

メールアドレスが公開されることはありません。