解決方法の記載をお願い致します。
状況:VBscriptをクリックすれば正常に動きます。タスクスケジューラは指定時間に起動されています。時々正常に動作します(理由不明)。タスクを実行するためにスリープを解除。開始(オプジョン)指定済み。
環境:Windows10、itunes最新
Dim it
Set it = WScript.CreateObject("iTunes.Application")
if Weekday(Now) = 2 or Weekday(Now) = 4 or Weekday(Now) = 6 then
Set pList =it.LibrarySource.Playlists.ItemByName("月水金の朝")
end if
if Weekday(Now) = 3 or Weekday(Now) = 5 then
Set pList =it.LibrarySource.Playlists.ItemByName("火木の朝")
end if
if Weekday(Now) = 7 or Weekday(Now) = 1 then
Set pList =it.LibrarySource.Playlists.ItemByName("土日の朝")
end if
pList.Shuffle = 1
pList.PlayFirstTrack()
WScript.sleep 5000
it.SoundVolume = 50
コメント(8件)
>時々正常に動作します(理由不明)。
'
スリープ明け、
寝起きで不機嫌なら、
朝一はコーヒーではなく水を一杯飲んで落ち着きましょう
じゃなかった、
スリープ明けに他の処理・タスクが走っていて
Set it = WScript.CreateObject("iTunes.Application")
を邪魔しているだけなら、
冒頭で一息つく意味でwaitしてみては?
'寝起きが悪いなら、少し待ってみる?
WScript.sleep 60000 '←先頭に入れ、60秒、一分あたまで待つ
Dim it
Set it = WScript.CreateObject("iTunes.Application")
if Weekday(Now) = 2 or Weekday(Now) = 4 or Weekday(Now) = 6 then
・
・
・
.
6:30 起動のスケジュールなら、
頭で一分待つので、6:29分スタートにすると時間が合わせやすいかな。
※そんなに時刻を気にしないでいいなら、
スリープ明け一分も他の処理を待たなくてもよいかも・・・
.
回答の文章がふざけている
And
自信が無いのでコメントで失礼します。
解決の糸口となれば幸いです。。。
最初にスリープを入れてみましたが、結果は一緒でした。
もう少し解決方法を考えてみます。
「ユーザーがログオンしているかどうかにかかわらず実行する」になっている場合は「ユーザーがログオンしているときのみ実行する」に変えて試してみてください。
なんとなくですが、ユーザープロファイルが読み込まれないと、iTunes.Application が起動できないのでは無いかと思います。
手持ちの Windows 10 環境で、コマンドプロンプトから「runas /noprofile /user:xxxx cmd.exe」(ユーザープロファイルを読み込まないでコマンドプロンプトを起動)を行い、VBScript を実行したところ、同じエラーが表示されることを確認しました。
確証はないですが、そのあたりが原因な気がします。
既に「ユーザーがログオンしているときのみ実行する」になっていました。
もう少しこのあたりも検討してみます。
対話的ログオンで実行している場合は画面からVBScriptを実行するのと同様の動きになると思っていたんですが、うまくいかないのは謎ですね。。。
ちなみにタスクスケジューラに登録してあるタスクを手動実行(「タスクを選択」-「右クリック」-「手動実行」)した場合は、正常動作する感じでしょうか?
以下は、参考情報です。タスクスケジューラが起動しない場合の一般的な対処方法になります。
<確認ポイント>
・タスクスケジューラのセキュリティオプションで「最上位の特権で実行する」
・ローカル セキュリティポリシーで「バッチ ジョブとしてログオン」の権利を実行アカウントに割り当てる
・タスクスケジューラの「条件」タブで「コンピュータを AC 電源で使用している場合にのみタスクを開始する」のチェックを外す
<参考情報>
■ Windowsでログオフ中でもタスクを起動させる方法
http://www.atmarkit.co.jp/ait/articles/1307/08/news101.html
タスクスケジューラを手動で実行しても同様のエラーとなりました(ダブルクリックの実行は正常に動作します)。
スリープからの起動が問題の原因でないことがわかり、とても助かりました。
別の方法として、タスクスケジューラでuwscを起動し、uwscからvbscriptを実行しても同様のエラーでした。
ちなみに、vbscriptを実行した際は、itunesは選択され表面に表示されるが、5-10秒後にエラーとなります。
なお、『最上位の特権で実行する』と『コンピュータを AC 電源で使用している場合にのみタスクを開始する(チェック外す)』は対応済みで、『バッチ ジョブとしてログオン』はwin10 homeのためか設定を見つけることができませんでした。
タスクスケジューラでuwsc①を実行
→uwsc①によりランチメニュからuwsc②を起動("ctrl"+"q"でランチメニュを起動し、"0"を入力することでuwsc②を起動)
→uwsc②によりvbscript①を実行
→vbscript①でitunesを再生
一応解決されたようで良かったです。
何故その方法がうまくいくのかが分かっていないので、ちょっとモヤっとしてますけどね。。。