1

私の問題は、UPS がホーム サーバーに停電が発生したことを通知したときに、NAS にシャットダウン コマンドを送信する必要があることです。追加のハードウェアを使用するのではなく、(Windows 10 Home) PC サーバーの閉鎖通知を使用して、閉鎖イベントの一部としてバッチ ファイルをトリガーできるようにしたいと考えています。特定の URL を開くと、NAS が正常に終了することがわかりました。

https://192.168.1.10/get_handler?PAGE=System&OUTER_TAB=tab_shutdown&INNER_TAB=NONE&shutdown_option1=1&command=poweroff&OPERATION=set

問題は、ブラウザにつながるダイアログをバイパスしようとすることに関連しているようです。まず、資格情報を要求します。次のように、URL 呼び出しにそれらを含めることで、これをバイパスできます。

start "" "C:\Program Files\Mozilla Firefox\firefox.exe" " https://username:password@192.168.1.10/get_handler?PAGE=System&OUTER_TAB=tab_shutdown&INNER_TAB=NONE&shutdown_option1=1&command=poweroff&OPERATION=set "

今度は、「ユーザー名」としてログオンするかどうかを確認するダイアログが表示され、これを無人で実行しようとする試みが再び無効になります (停電が発生したとき、私はどこにでもいる可能性があります)。これを回避する方法はありますか?参考までに、Microsoft Edge はどこにでもスペースを挿入して URL パラメーターをバラバラにし続けたため、Microsoft Edge での作業をあきらめました。また、試行するたびに、セキュリティ証明書について手動で不平を言い続けました。そのブラウザでも同じ確認要求の問題が発生すると思います。したがって、これらすべてのダイアログを抑制して、URL 呼び出しだけを行う方法が必要です。何か考えはありますか?

4

1 に答える 1

0

この質問が投稿されてから 24 時間以上経過しても回答が得られなかったことから、これはトリッキーな質問であり、試行錯誤を続けることがわかりました。Window独自のツールセットで解決するために考えられるすべてを試した後、何も機能しないことがわかり、問題を解決するには何か追加が必要であることに気付きました。最後にあきらめて、無料のAutohotkeyをインストールし、ダイアログ ボックスの処理を含むすべての作業を行うスクリプトを作成しました。すべてが機能したら、便宜上、スクリプトから実行可能ファイルを作成したので、クローズ ダウン バッチ (.bat) ファイルから簡単に呼び出すことができます。このソリューションは機能します。同様の問題を解決する必要がある人のためのスクリプトは次のとおりです。

> runWait, C:\Program Files\Mozilla Firefox\firefox.exe
> https://admin:password@192.168.1.10/get_handler?PAGE=System&OUTER_TAB=tab_shutdown&INNER_TAB=NONE&shutdown_option1=1&command=poweroff&OPERATION=set
> 
> #Persistent SetTimer, MsgBoxCheck, 3000 return
> 
> MsgBoxCheck: If WinExist("ahk_class MozillaDialogClass") {   
> SetControlDelay -1    ControlClick, , Confirm,    SetTimer,
> MsgBoxCheck, off    exitApp } else {    SetTimer, MsgBoxCheck, off   
> MsgBox, 4, , Debug - No Confirm Window Found.    exitApp } return

これを Mozilla 以外のプログラムで機能させるには、ahk_class パラメータを変更する必要があることに注意してください。Windows Spy を使用して、閉じたいウィンドウのクラスを判断することをお勧めします。また、「確認」をウィンドウのタイトルに変更する必要があります。

于 2017-06-14T19:13:02.467 に答える