ショボ短歌会

会社の受付にwin10に接続した大型モニタを設置しています。
設定で、win10起動時にバッチファイルを実行し、IEで全画面表示(キオスクモード)で特定のURLを表示しているのですが、起動時は正常表示されるものの、数時間程度経過すると
なぜかIEの全画面表示が解除され、バッチを実行したコマンドプロンプトの画面が前面に表示される状態になっています。

これは原因として何が考えられますでしょうか。

バッチファイルの内容はIEを-kオプションで実行する記述になっています。

質問者からの補足コメント

  • 回答ありがとうございます。
    アドバイスをもとに、バッチファイルを利用せずにショートカットを使ってIEの全画面表示を行ったのですが、同様の症状が発生します。
    全画面表示が解除されるだけで、コマンドプロンプトの画面が表示されることはなくなったので少しは改善されましたが・・・
    何が起こっているか特定するためにログを取る?ようなことは難しいでしょうか・・・

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/02/14 17:04

A 回答 (3件)

No.2です。



あと、他のアプリケーションからのウィンドウ制御を受けにくくする方法としまして、管理者権限で実行するという方法があります。

方法は、メモ帳を開き、以下の線内の文章をコピー&ペーストし、任意の場所に、「IE起動.vbs」等の名前で保存し、そのショートカットをスタートアップに登録します。

ただし、これは管理者権限での起動となりますので、セキュリティ上、社外の方が操作されるようなPCには向かないかと思います。

又、IE自体の不具合等によりウィンドウサイズが変わってしまっている場合は、効果が無いかと思います。

――――――――――――――――――――――――

set o=CreateObject("Shell.Application")
o.ShellExecute "C:\Program Files\Internet Explorer\iexplore.exe","-k",,"runas",1

――――――――――――――――――――――――

又、Windows10標準の「PowerShell」を使って、IEのウィンドウを定期的に最前面にする方法もあります。

ただ、これは、ウィンドウが「最前面でなくなってしまっているだけ」の場合のみ有効です。

キオスクモードが解除され、ウィンドウが「最大化」や「通常」の状態になってしまっている場合は意味がありません。

【方法】

メモ帳を開きます。

以下の線内の文章をコピー&ペーストします。

――――――――――――――――――――――――

add-type -AssemblyName microsoft.VisualBasic

#■ メッセージ
Write-Output ""
Write-Output "  IE最前面化が実行されています"
Write-Output ""

#■ ループ開始
while(1) {

#■ iexploreのプロセスを取得
$ps = Get-Process | Where-Object {$_.Name -eq "iexplore"}
foreach($process in $ps){

#■ MainWindowTitleが空でないもの
if($process.MainWindowTitle -ne "") {

#■ プロセスをアクティブにする
[Microsoft.VisualBasic.Interaction]::AppActivate($process.ID);

#■ チェック間隔(「1秒」=「1000」)
Start-Sleep -m 300

}
}
}

――――――――――――――――――――――――

任意の場所に、「IE-Active.ps1」という名前を付けて保存します。(これはPowerShellのスクリプトファイルです。)

メモ帳を閉じます。

再度、メモ帳を起動します。

以下の線内の文章をコピー&ペーストします。

――――――――――――――――――――――――

@echo off

rem ■ IE起動
start "" "C:\Program Files\Internet Explorer\iexplore.exe" -k

rem ■ PowerShellスクリプトを実行
powershell "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%~dp0IE-Active.ps1'"

――――――――――――――――――――――――

任意の場所に、「IE最前面化.bat」という名前で保存します。(これは起動用のバッチファイです。)

メモ帳を閉じます。

任意の場所に、「IE最前面化」という名前のフォルダを作成します。

作成した2個のファイルを、ここへ移動します。

フォルダを、どこか固定の場所に移動させます。

フォルダを開き、「IE最前面化.bat」のショートカットを作成し、それをスタートアップに登録します。

以上です。

「チェック間隔」はミリ秒指定で、「1秒」なら「1000」と記述します。処理が重い場合はこの数値を増やします。

■ 参考にしたリンク

PowerShell - powershellでウィンドウの選択
https://teratail.com/questions/40116
    • good
    • 0

ログに関しましては、Windows標準のイベントビューアーである程度は見れるかと思います。



開き方は以下の通りです。

デスクトップ左下のスタートボタンを右クリック
→ 「イベント ビューアー」をクリック
→ 左の欄の「カスタムビュー」をダブルクリック
→ 「管理イベント」をクリック
→ 中央の欄を見る

又、「Windowsログ」や「アプリケーションとサービス」の方にも、何か情報が見付かるかも知れません。

あと、Windows標準ではないですが、マイクロソフトのツールで、「Process Monitor」というものがあり、こちらはかなり詳細なログが取れます。

しかし、長時間のログを取るとデータが膨大となりますので、今回のような長時間の調査が必要なケースにはあまり向かないかと思います。1分以内で終わるような調査には向いているかと思います。
    • good
    • 0

推測される原因としましては、バッチファイルのウィンドウが前面となる事から、バッチファイルのウィンドウが閉じられていない事が原因かとも思いますが、通常はそのような事が起こらない気がしますので、違うかも知れません。



本来、このような症状が出た場合、IEのウインドウを常に手前に表示するように出来たら良いのですが、これはWindows標準の機能では難しいようで、恐らくフリーソフトも使えない環境だとお察ししますので、この実現はなかなか難しいのかなと思います。

ですので、対処法としましては、バッチファイルを、IEを起動したら終了するように書き換えるか、あるいは、バッチファイルは使わず、IEのショートカットを作成し、それを右クリックし、「プロパティ」をクリックし、「リンク先」の欄内の末尾に、半角スペースに続けて「-k」オプションを書き込み、そのショートカットをスタートアップに登録して様子を見るか、等でしょうか。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!