Python komut dosyasını komut dosyası yerine komut olarak çağıran düğme mi yapıyorsunuz?


12

Arc9.3'te komutların VBA komut dosyaları kullanılarak oluşturulabileceğine inanıyorum. Özel bir komut eklemek için Özelleştir> Araç Çubukları> Özelleştir ... seçeneğine gidip UIControls'ü tıklarsınız. Ancak, UIControls sürüm 10'da yoktur.

Bir harita kitabı projesi için iki ayrı komut dosyası oluşturuyorum. Bir komut dosyası, düzen ayarlarını bir tabloya kaydeder ve diğeri, düzeni aynı tablodaki ayarlarla güncelleştirir. Bu komut dosyalarının her ikisinin de bir araç çubuğundaki düğmelere atanmış komutlar olmasını istiyorum. Bunları komut dosyası araçları olarak oluşturdum, ancak her tıkladığımda, komut dosyasını bir coğrafi işleme aracı olarak çalıştırıyorlar. Bir ilerleme penceresi getirir ve kodu Python komut satırı penceresinde çalıştırmamdan yaklaşık 10 kat daha uzun sürer. İlerleme penceresini veya daha uzun yürütme süresini istemiyorum.

Komut dosyasının bir "araç" olarak değerlendirilmemesi ve bunun yerine Kaydet düğmesine benzer bir komut olması için bunu nasıl yapabilirim?

Yanıtlar:


6

Bir Excel VBA makrosu içinde aşağıdakiler adlı bir Python betiği çağırır test.py:

Sub test()

rsp = Shell(Environ$("COMSPEC") & " /c C:/test.py", vbNormalFocus)

End Sub

( Buradaki orijinal kaynak ) Bir ArcGIS VBA modülünü nasıl çalıştıracağımı unuttum, ancak belki de benzer bir satır python komut dosyanızı çağırmak için işe yarayacaktır.


Çalışabilecek başka bir strateji, python komut dosyanızı yürütülebilir (.exe) veya toplu iş dosyasına (.bat) derlemek ve sonra çağırmak olabilir.


Daha zarif olan gis.se'de başka bir cevap gördüm :

Private Sub python_Click()
    Shell "C:\Python25\python.exe ""C:\rowcount.py"
End Sub

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.