模型制作完成后,使ArcGIS for Desktop在扬声器上播放声音吗?


16

我希望能够在ArcGIS for Desktop中的模型在整个晚上运行时保持睡眠状态。

我想让ArcGIS for Desktop在结束时播放声音,以唤醒我。

这可能吗?


3
我希望通过电子邮件向我发送电子邮件,因此答案可能包括两者(倒啤酒也不错)。好问
如果您不知道-GIS

1
Chr(7)BEL播放扬声器声音...但是,如果您仅对一些Python感兴趣,我可以为您提供帮助。虽然不能帮助啤酒。
Michael Stimson 2014年

啊! 一封电子邮件可以工作,我可以关闭我的电子邮件程序。
亚伦

5
我设想像Rube Goldberg(sp?)这样的解决方案将是最合适的。模型完成后,机械式计算机臂会碰到活板门,从而释放出一个球,最终将湿毛巾掉在您的脸上或类似物体上。
如果您不知道-GIS 2014年

Answers:


18

我真的很喜欢Aarons的答案,但是更简单,更本地:

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])

当然,样本音乐更可能使您入睡,因此更像是我的闹钟铃声可能更适合您。

但是,当然这很简单,您可以同时执行这两种操作,只需将其附加到Aarons代码的末尾即可。


1
好主意!这也可以很容易地合并为脚本工具。
亚伦

2
喜欢这个脚本的想法。我建议像国家地理主题音乐或“卡门·桑迪戈(Carmen Sandiego)在世界上什么地方”这样的mp3 ,但这对我来说可能有点怪胎……
艾丽卡(Erica)2014年

每个人的音乐品味都不一样。我选择了一首大声且烦人的歌曲,因为它更有可能引起关注。如果您不太可能入睡,女武神的飞行将是一个不错的选择。如果您真的很热衷,则可以输入要播放的文件的参数,并使其在关键点以短音报告以证明生活
Michael Stimson 2014年

再一次,我以1998年的AML取代了您的答案,此举发出令人讨厌的哔哔声;)
Stephen Lead

哈哈@StephenLead,在ArcInfo中,几乎所有内容都发出了令人讨厌的提示音。您可以走开去煮咖啡,并且仅凭一连串的哔哔声就知道您的过程仍在进行。这当然是假设您已安装系统扬声器。
Michael Stimson

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)

创建脚本工具的说明:

Create the script

  1. 打开IDLE >文件>新窗口
  2. 复制此帖子上的脚本并将其粘贴到新窗口
  3. 另存为>“ SendEmail.py”

创建脚本工具

  1. 右键单击文件夹>新建>工具箱(这是脚本工具所在的位置)
  2. 右键单击工具箱>添加>脚本...
  3. 填写名称,标签,描述,然后选中“存储相对路径...”。
  4. 打下一个
  5. 添加您创建的脚本“ SendEmail.py”
  6. 打下一个
  7. 完全按照附图填写参数。
  8. 击中完成
  9. 在工具框中找到新工具,并像在ModelBuilder中使用其他工具一样使用

在此处输入图片说明


1
@迈克尔·迈尔斯·史密森有趣的巧合是,亚伦再也没有太多了。此脚本工具直接通过电子邮件服务工作,并且独立于Outlook。但是,如果Outlook可以阅读您的电子邮件,并且您的手机可以在通过Outlook收到电子邮件时通知您,则它应该可以正常工作。
亚伦

1
我和亚伦一起工作,他也很酷。我指的是外发电子邮件,从本质上讲,我是在向自己发送电子邮件..从发给我的消息是从工作计算机发送的,并在VPN上的家用计算机上读取/通知。Outlook可以被配置为播放声音,当电子邮件的用武之地。
迈克尔·史汀生

1
好。这是非常有前途的!我不太明白在哪里放置我的实际电子邮件地址。我可以用短语“ gmail_user”代替它吗?还是那个变量?什么是“ sys.argv [#]”东西?那是我存放信息的地方吗?
亚伦

1
@Aaron sys.argv是包含从命令行传递到Python脚本的参数的列表。这等效于使用arcpy.GetParameterAsText(i
om_henners 2014年

3
如果可以帮助任何人,我将举一个示例要点,以说明如何使用@Aaron的答案作为包装,以通知脚本成功或失败。
om_henners 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.