モデルの完了時にArcGIS for Desktopでスピーカーでサウンドを再生しますか?


16

ArcGIS for Desktopで夜間にモデルが実行されている間、スリープ状態になりたいです。

ArcGIS for Desktopが終了したときにサウンドを再生して、私を目覚めさせたいと思います。

これは可能ですか?


3
私はそれを私に電子メールで送りたいので、多分答えは両方を含むことができます(ビールを注ぐことも同様にいいでしょう)。素晴らしいQ.
知らない場合-GISだけ14年

1
Chr(7)BELはスピーカーサウンドを再生します...ただし、少しだけのpythonに興味があるなら、私は助けることができます。しかし、ビールを助けることはできません。
マイケルスティムソン14年

あ!メールは機能しますが、メールプログラムの音声をオフにすることができます。
アーロン14年

5
Rube Goldberg(sp?)のようなソリューションが最も適切だと思います。モデルが完了すると、機械式のコンピューターアームがトラップドアに当たり、ボールが放出され、最終的に顔などに濡れたタオルが落ちます。
知らない場合-GISだけ14年

回答:


18

アーロンの答えは本当に好きですが、もっとシンプルでローカルなものがあります:

subprocess.Popen([r"C:\Program Files (x86)\Windows Media Player\wmplayer.exe",r"C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3"])

サブプロセスモジュールを使用すると、Windows Media Playerがファイルを開きます。

import subprocess

wmPlay = r"C:\Program Files (x86)\Windows Media Player\wmplayer.exe"
PlayFile= r"C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3"
subprocess.Popen([wmPlay,PlayFile])

もちろん、サンプル音楽はあなたを眠らせる可能性が高いので、私の目覚まし時計の音のようなものがより適しているかもしれません。

しかし、もちろんそれはとても簡単なので、両方を行うことができます。アーロンのコードの最後にそれを追加するだけです。


1
素晴らしいアイデア!これは、スクリプトツールとして簡単に組み込むこともできます。
アーロン

2
このスクリプトのアイデアが大好きです。私のようなmp3をお勧めしたいナショナルジオグラフィックのテーマ曲、またはどこの世界でカルメンサンディエゴである ...が、それはあまりにもマニアックな私の少しかもしれないが
エリカ

みんなの音楽の好みは違います。注目される可能性が高いので、うるさくて迷惑な曲を選びました。Flight of the Valkyriesは、眠りそうにない場合に最適な選択です。あなたが本当に熱心された場合は、再生するファイルのパラメータに入れて、それがなどの重要なポイントで短いトーンに戻って報告して得ることができる人生の証明
マイケル・スティムソン

そして再び、私はあなたの答え横取り1998 AML);迷惑なビープ音を作る
スティーブン・鉛

ハハ@ StephenLead、ArcInfoのほとんどすべてが迷惑なビープ音を発しました。立ち去ってコーヒーを飲むと、ビープ音が鳴るだけでプロセスが進行していることがわかります。もちろん、これはシステムスピーカーがインストールされていることを前提としています。
マイケルスティムソン14

16

モデルが完成したら自分にメールを送ってください。添付のPythonスクリプトを介して送信された電子メールを受信したときに、トーンが聞こえるように電話を設定してください。これは、ModelBuilderでスクリプトツールとして実行されるように設計されています。スクリプトツールの使用に慣れていない場合は、次の手順に従ってください。これがGmailで動作するように設定されていないことに注意してください。このツールは、次のように動作するように設計されています(bufferedPoints変数とsendEmailスクリプトツールを添付する前提条件に注意してください)。

ここに画像の説明を入力してください


import smtplib, os, arcpy
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders

# Fill in the necessary blanks here
gmail_user = sys.argv[1]
gmail_pwd = sys.argv[2]

# The parameters
to = sys.argv[3]
subject = sys.argv[4]
text = sys.argv[5]

def mail(to, subject, text):
    msg = MIMEMultipart()

    msg['From'] = gmail_user
    msg['To'] = to
    msg['Subject'] = subject

    # Attaches a text message to the e-mail
    msg.attach(MIMEText(text))

    mailServer =smtplib.SMTP("smtp.gmail.com", 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmail_user, gmail_pwd)
    mailServer.sendmail(gmail_user, to, msg.as_string())
    mailServer.close()

mail(to, subject, text)

スクリプトツールの作成手順:

スクリプトを作成する

  1. IDLE >ファイル>新しいウィンドウを開きます
  2. この投稿のスクリプトをコピーして新しいウィンドウに貼り付けます
  3. 名前を付けて保存>「SendEmail.py」

スクリプトツールを作成する

  1. フォルダーを右クリックし、[新規]> [ツールボックス](スクリプトツールが配置される場所です)
  2. ツールボックスを右クリック>追加>スクリプト...
  3. 名前、ラベル、説明を入力し、「相対パスを保存...」をチェックします。
  4. 次のヒット
  5. 作成したスクリプト「SendEmail.py」を追加します
  6. 次のヒット
  7. 添付の図のとおりにパラメーターを正確に入力します。
  8. ヒットフィニッシュ
  9. ツールボックスで新しいツールを見つけ、ModelBuilderの他のツールと同じように使用します

ここに画像の説明を入力してください


1
@ Michael Miles-Stimsonおもしろい偶然、アーロンはもうあまりありません。このスクリプトツールは、電子メールサービスを介して直接機能し、Outlookに依存しません。ただし、Outlookが電子メールを読むことができ、Outlookを介して電子メールを受信したときに電話が通知できる場合は、正常に機能するはずです。
アーロン

1
私はアーロンと仕事をしています、彼もかっこいいです。私はを参照して送信メール基本的に私はから。メッセージを自分自身を電子メールで送信されるだろう、私は仕事用のコンピュータから送信され、読み取り/ VPNで自宅のコンピュータ上で通知します。Outlookが電子メールが入って来たときにサウンドを再生するように構成することができます。
マイケル・スティムソン

1
OK。これは非常に有望です!私は実際のメールアドレスをどこに置くかをよく理解していません。「gmail_user」というフレーズの代わりに使用できますか?それとも変数ですか?「sys.argv [#]」とは何ですか?それは私が私の情報を置く場所ですか?
アーロン14年

1
@Aaron sys.argvは、コマンドラインからPythonスクリプトに渡される引数を含むリストです。これはarcpy.GetParameterAsText(使用と同等であるI
om_hennersを

3
誰かに役立つ場合は、スクリプトの成功または失敗を通知するラッパーとして@Aaronの回答を使用する方法を示すサンプルの要点を示しました。
om_henners 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.