Menü çubuğundaki bir öğeye fare tıklaması yapmak için bir AppleScript nasıl kodlanır?


2

Müthiş bir Pomodoro uygulamam var ama başlatmak ve duraklatmak için klavye kısayolları yok. Bir AppleScript kodunu son bir saattir kodlamaya çalışıyorum, AppleScript referansını okuyordum ve çevrimiçi arama yapıyorum, ancak hiçbir yere ulaşmıyorum.

Yapmak istediğim bir AppleScript (BetterTouchTool adlı bir uygulamadan başlatılacak) menü çubuğundaki koordinatlara tıklamak, (Pomodoro uygulaması arka planda çalışıyor ve gerekli tüm koordinatlara sahibim), bir imleç gerekli ikinci imleç geri geldiğinde (ilk imleç konumuna geri dönmek için), 'Başlat / Duraklat' açılır öğesinde (koordinatlardan) ikinci bir kez tıklayın ve ardından imleci orijinal haline getirmek için ikinci bir imleç geri yapın durum.

DÜZENLEME: Uygulama, 'Başlat', 'Duraklat' veya 'Devam Et' gibi ilk madde olarak açılan bir açılır menüye sahip bir zamanlayıcı uygulamasıdır (klavye ile tıklayabiliyorum. atanan AppleScript.

EDIT2: bu kadar ileri:

tell application "System Events" 
    click (click at {1447, 10}) 
end tell 
tell application "System Events" to tell process "Pomodoro Timer" 
    click (click at {1456, 37}) 
end tell

Ancak imleci nasıl geri kodlayacağımı bilmiyorum ve bu hatayı alıyorum:

Sistem Olaylarında bir hata oluştu: "Pomodoro Timer" uygulama işleminin 2. menü çubuğundaki "00:58" menü çubuğu öğesi alınamıyor.

Lütfen birisi bana yardımcı olabilir mi?



“Pomodoro uygulaması” hakkında daha ayrıntılı bilgi sorunuza dahil edilmiş olmalıdır. Ek olarak, eğer bu uygulama ekstra bir menü olarak çalışıyorsa , harici bir tıklama tipi programa gerek kalmadan kodlanabilir . Ancak, bu "Pomodoro uygulaması" hakkında ek bilgi olmadan daha fazla yorum yapmanın bir anlamı yoktur.
user3439894 16:16

Benim önerim, Kod Düzenleyici'yi açmak ve menü çubuğundaki Pencere'yi tıklamak . Sonra aşağı kaydırın ve Kütüphane'yi tıklayın . Şu anda Komut Dosyası Düzenleyici Kütüphanesinde bulunan uygulamaların bir listesi ile sunulacak. Aradığınız uygulama bu listede değilse, + simgesini tıklayıp ardından uygulamanın bulunduğu Uygulamalar klasörüne gitmeyi deneyebilirsiniz . Uygulamayı seçtikten sonra tıklayın . Uygulamanın komut dosyası çalıştırılabilir olması durumunda, yapmasını istediğiniz şeyi yapmasını sağlamak için nasıl komut yazılacağını okuyabileceğiniz Komut Dosyası Düzenleyici Kitaplığı'na eklenmelidir.
I0_ol

@ user3439894 'Başlat', 'Duraklat' veya 'Devam Et' gibi ilk öğe olarak açılan bir menü içeren bir zamanlayıcı uygulamasıdır (menü çubuğunda).
samseva

@ user556068 Oh, harika bir öneri. Uygulamanın komut dosyası değil, ancak Photoshop. Teşekkürler, bu işe yarayabilir.
samseva

Yanıtlar:


1

"AppleScript Araç Kutusu" adında bir komut dosyası eki var (bu bir osax). En alın https://astoolbox.wordpress.com/

Bununla, sadece yazabilirsiniz:

AST click at {10, 20}

Örneğin menü çubuğuna tıklar ve Apple menüsünü açar.

Önce orijinal imleç konumunu korumak istiyorsanız, bunu kullanın:

set origPos to AST mouse point location

Ve onu geri yüklemek için:

AST set mouse point location origPos

Muhteşem. Bu kodun kullanılması farenin imlecini bir açılır menüye tıklatır, ancak ikinci bir '{10, 20}' AST tıklaması eklemek fareyi menü öğesini tıklatmaz, ancak yalnızca fare imlecini hareket ettirir. Bir tıklama başlatmak için hangi kod gerekir?
samseva

Muhtemelen bir çift tıklamaya neden oluyorsunuz, bu ne istediğiniz değil. Tıklamalar arasına "gecikme 1" eklemeyi deneyin.
Thomas Tempelmann

İşe yarıyor. Sadece son bir şeyi özlüyorum. İmleci orijinal konumuna geri döndürmek için hangi kodu kullanmak gerekir?
samseva

AST Sözlüğüne bakın, örneğin Script Editor'ı kullanarak. Tıklamadan fare konumunu almak ve ayarlamak için benzer yorumlar bulacaksınız. Anlayamazsan bana haber ver. Ayrıca, bu cevap size yardımcı olduysa, lütfen yanıtlayın ve yardımcı cevap olarak kabul edin. Ayrıca, son çözümünüzü sorunuza eklerseniz, başkalarına yardımcı olabilir.
Thomas Tempelmann

Selam Thomas. Komut Dosyası Düzenleyici'nin yanı sıra AppleScript Dil Kılavuzunu da araştırdım, ancak "imleç geri" hakkında hiçbir şey bulamadım. Şu anda elimde: tell application "System Events" AST click at {808, 13} delay 0.1 AST click at {808, 33} end tellÇalışıyor, ancak imleç tıkladığı yere kadar bitiyor ve imleci başlangıçtaki yerine getirmeniz gerekiyor. "İmleç geri" kodunu nerede arayacağınızı biliyor musunuz (var olduğunu biliyorum, birkaç kez gördüm: D)?
samseva
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.