Komut satırından iletişim kutusu görüntüle (xmessage gibi)


4

Arka fon

OS X'te bir komut dosyası içinden bir bildirim penceresi görüntüleyebilmek istiyorum. Betik arka planda çalışacaktır, bu nedenle bildirim terminale gitmemeli, bunun yerine bir iletişim penceresinde gösterilmelidir.

Şimdiye kadar ne buldum

xmessage

Linux'ta muhtemelen xmessagebunun için değişkenlerinden birini kullanırdım . Ancak OS X'te hantal X sunucusunu sadece bu görev için başlatmak hem fazla hem de zevkime göre çok yavaş görünüyor.

Bulucu iletişim kutusu

Bu forum başlığında benzer bir soru buldum , “kabul edildi” cevabı bu komutu önerdi:

osascript -e 'tell app "Finder" to display dialog "Hey!"'

Ancak, OS X , ortaya çıkan iletişim kutusu hemen görüntülenmiyor. Bunun yerine, Finder simgesi sıçramaya başlar ve iletişim kutusu yalnızca simgeye tıkladığımda görünür hale gelir. Çok fazla fare tıklaması, çok yıkıcı.

Bildirici

Süper Kullanıcı'da , terminal-notifier adlı bir araç öneren bir cevap var . Ne yazık ki bu sadece OS X için çalışıyor gibi görünüyor , bu yüzden benim durumumda yardımcı olmayacak.

Soru

Öyleyse, OS X dahil edilmiş veya serbestçe temin edilebilecek, çok fazla ek yük olmadan kullanıcıya küçük bir diyalog gösterilmesini sağlayan bir araç var mı?

Yanıtlar:


5

Seçeneklerden biri, iletişim kutusunu görüntülemek için SystemUIServer gibi bir arka plan işlemi anlatmaktır:

osascript -e 'tell application "SystemUIServer"
display dialog "message"
end
activate application (path to frontmost application as text)'

Ayrıca en öndeki uygulamaya bir iletişim kutusu göstermesini de söyleyebilirsiniz, ancak uygulama yanıt vermiyorsa hemen gösterilmez. MPlayer OS X en öndeyse, metin iletişim kutuları klavye girişini kabul etmez.

osascript -e 'tell application (path to frontmost application as text)
display dialog "message"
end'

İlk yaklaşım, uygulamanın tüm pencerelerini hafifçe sinir bozucu bulduğum bir dezavantaj . Fakat ikinci yaklaşım şu ana kadar gördüğüm en iyisi. Yanıt vermeyen uygulamalar, bunlar için endişelenmeyeceğim kadar nadir olmalıdır.
MVG

3

Deneyin

tell application "System Events" to display dialog "Plug the Digispark into the USB port." buttons {"OK"} with icon caution

OS X 10.8.2'de test edilmiştir


Osascript öğrenmem gerek gibi geliyor
Edward Falk

Soru: Maddeyi eklemek, buttons {"OK"}iletişim kutusunun açıldığında odaklanmamasına neden olur. Dışarıda bırakmak size istemediğimiz bir İptal düğmesi verir, ancak en azından iletişim odaklanır. Bu maddeyi kullanırken bile odaklanmanın bir yolu var mı?
Edward Falk
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.