Model tamamlandığında ArcGIS for Desktop'ı hoparlörde çalıyor mu?


16

Modeller gece boyunca ArcGIS for Desktop'ta çalışırken uyuyabilmek istiyorum.

ArcGIS for Desktop'ın bittiğinde beni uyandırmak için bir ses çalmasını istiyorum.

Mümkün mü?


3
Belki cevap her ikisi de içerebilir (bana dökün bir bira da güzel olurdu) bana e-posta istiyorum. Büyük S.
Bilmiyorsanız - sadece GIS

1
Chr (7) BEL bir hoparlör sesi çalar ... ancak biraz python ile ilgileniyorsanız yardımcı olabilirim. Bira ile olsa yardımcı olamaz.
Michael Stimson

Ah! Bir e-posta işe yarar, e-posta programımın sesini kapatabilirim.
Aaron

5
Rube Goldberg (sp?) Benzeri bir çözümün en uygun olacağını düşünüyorum. Model tamamlandığında, mekanik bir bilgisayar kolu, sonunda yüzünüze ıslak bir havlu veya benzeri bir şey bırakan bir topu serbest bırakan tuzak kapısını vurur.
Eğer bilmiyorsanız

Yanıtlar:


18

Aarons'un yanıtını gerçekten çok seviyorum, ancak daha basit ve yerel bir şey:

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

alt işlem modülünü kullanmak windows media player'ın bir dosyayı açmasına neden olur.

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

Tabii ki örnek müziğin sizi uyutması daha olasıdır, bu yüzden çalar saat tonum gibi bir şey daha uygun olabilir.

Ama tabii ki her ikisini de yapabileceğiniz kadar basit , sadece Aarons kodunun sonuna yapıştırın.


1
Mükemmel fikir! Bu ayrıca bir komut dosyası aracı olarak kolayca dahil edilebilir.
Aaron

2
Bu senaryo fikrini seviyorum. National Geographic tema müziği gibi bir mp3 öneririm , ya da Where in the World Carmen Sandiego , ama bu benim için biraz fazla geeky olabilir ...
Erica

Herkesin müzikal zevki farklıdır. Dikkat çekmesi daha muhtemel olduğu için yüksek ve rahatsız edici bir şarkı seçtim. Gerçi uyku olası değilse, Valkyries uçuş mükemmel bir seçim olurdu. Gerçekten istekli olsaydınız, çalınacak dosyanın bir parametresini koyabilir ve hayatın kanıtı
Michael Stimson

Ve yine, can sıkıcı bir bip sesi çıkaran 1998 AML ile cevabınızı önceden kabul ettim ;)
Stephen Lead

Ha ha @StephenLead, ArcInfo'da hemen hemen her şey sinir bozucu bir bip sesi çıkardı. Uzaklaşıp bir kahve yapabilir ve işleminizin hala bip sesi zincirinden geçtiğini biliyor olabilirsiniz. Bu tabii ki sistem hoparlörünüzün kurulu olduğunu varsayar.
Michael Stimson

16

Model bittiğinde kendinize e-posta göndermeye ne dersiniz? Telefonunuzu, ekli Python betiği ile gönderilen e-postayı aldığınızda size bir ton verecek şekilde ayarladığınızdan emin olun. Bu, ModelBuilder'da bir komut dosyası aracı olarak çalışmak üzere tasarlanmıştır. Komut dosyası araçlarını bilmiyorsanız, bu talimatları izleyin . Bunun gmail ile çalışacak şekilde yapılandırıldığını lütfen unutmayın. Araç aşağıdaki gibi çalışacak şekilde tasarlanmıştır (bufferedPoints değişkenini ve sendEmail komut dosyası aracını iliştirme ön koşuluna dikkat edin):

resim açıklamasını buraya girin


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)

Komut dosyası aracını oluşturma talimatları:

Komut dosyasını oluşturun

  1. Açık IDLE > Dosya> Yeni Pencere
  2. Bu yayındaki komut dosyasını kopyalayıp yeni pencereye yapıştırın
  3. Farklı kaydet> "SendEmail.py"

Komut dosyası aracını oluşturma

  1. Bir klasörü sağ tıklayın> Yeni> Araç Kutusu (Komut dosyası aracının bulunduğu yer budur)
  2. Araç kutusunu sağ tıklayın> Ekle> Komut Dosyası ...
  3. Ad, Etikel, Açıklama girin ve "Göreli yolu depola ..." seçeneğini işaretleyin.
  4. İleri'yi tıklayın
  5. Oluşturduğunuz komut dosyasını ekleyin "SendEmail.py"
  6. İleri'yi tıklayın
  7. Parametreleri tam olarak ekteki şekildeki gibi doldurun.
  8. Hit Bitti
  9. Araç kutusunda yeni aracı bulun ve ModelBuilder'daki diğer araçlarda olduğu gibi kullanın

resim açıklamasını buraya girin


1
@ Michael Miles-Stimson Komik tesadüf, artık çok fazla Aaron's yok. Bu komut dosyası aracı doğrudan e-posta hizmeti aracılığıyla çalışır ve görünümden bağımsızdır. Bununla birlikte, Outlook size e-postayı okuyabiliyorsa ve Outlook aracılığıyla bir e-posta aldığınızda telefonunuz size bildirebiliyorsa, düzgün çalışmalıdır.
Aaron

1
Bir Aaron'la çalışıyorum, o da havalı. Ben atıfta bulundu giden e esasen ben den .. mesajı kendim e-posta gönderme olacağını, bana göre bana iş bilgisayardan gönderilen ve okuma / VPN ev bilgisayarında bildirir. Outlook, bir e-posta geldiğinde ses çalacak şekilde yapılandırılabilir.
Michael Stimson

1
TAMAM. Bu çok umut verici! Gerçek e-posta adresimi nereye koyacağımı tam olarak anlamıyorum. Bunu "gmail_user" ifadesi ile değiştirir miyim? ya da bu değişken mi? "Sys.argv [#]" şeyler nelerdir? Bilgilerimi buraya koydum mu?
Aaron

1
@Aaron sys.argv, komut satırından Python komut dosyasına geçirilen bağımsız değişkenleri içeren listedir. Bu arcpy kullanmanın eşdeğeridir. GetParameterAsText ( i )
om_henners 27:04

3
O kimseyi yardımcı olursa, ben bir örnek yukarı koyduk özünü sarıcı olarak @Aaron cevabını nasıl kullanılacağını gösterir bir senaryonun başarılı veya başarısız durumunu bildirmek söyledi.
om_henners
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.