実現したいこと
ある一定時間ごとに判定を行い閾値を超えた時にアラーム(音)を発報できるようにしたいです。
Pythonでプログラムを書いています。
手動によりプログラムを実行した際は判定も行われて音も出るのですが
Windowsのタスクスケジューラの機能を実施した際に音がでません。
Windowsのタスクスケジューラの機能でなくてもよいので一定時間ごとに処理を行えないかと考えています。
発生している問題・分からないこと
・手動によりプログラムを実行した際は判定も行われて音はでる。
・タスクマネージャでプログラムを実行時に音がでない。
該当のソースコード
Python
1with open('output.csv', 'r', encoding='utf-8') as f: 2 reader = csv.reader(f) 3 for row in reader: 4 # アラーム判定時間に一致する行を探す 5 if row[0] == parameters["アラーム判定時間"]: 6 # アラーム判定項目に基づいて特定の列のデータを取得する 7 value = float(row[column_index]) # 値を浮動小数点数に変換 8 9 # 取得した値が閾値より大きいかどうかを確認 10 if value > float(parameters["閾値"]) and parameters["アラーム起動"] == "ON": # アラーム起動がONの場合のみ 11 print("アラームが発生しました") 12 # winsound.PlaySound('maou_se_system46.wav', winsound.SND_FILENAME) 13 winsound.Beep(1000, 1000) # 1000Hzの音を1000ms(1秒)間鳴らす 14 break # 一致する行が見つかったらループを終了
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Copilotに相談したところ下記の案を提示され対応しましたが音はならないままです。
タスクスケジューラでPythonスクリプトを実行する際に音が出ない問題は、スクリプトがバックグラウンドで実行されているために発生する可能性があります。バックグラウンドで実行されるプロセスは通常、音を出力する能力がありません。
この問題を解決するためには、タスクスケジューラのタスク設定で「ユーザーがログオンしているかどうかに関係なく実行する」および「最高の権限で実行する」を選択する必要があります。これにより、タスクはバックグラウンドではなく、前景で実行され、音を出力する能力が得られます。
補足
特になし

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。