Odrzuć alarm iCal bez myszy?

3

Teraz, gdy nadszedł Snow Leopard, przestałem używać Entourage (woo hoo!) I teraz używam iCal.

Czy istnieje sposób na odrzucenie alarmu iCal (np. „Spotkanie o godzinie 11:00 rozpoczyna się za 10 minut”) bez użycia myszy?

Nie mogę - Patka do okna. Jeśli przełączę się na iCal, okno alarmu nie jest aktywne. Nie mogę - ` do tego okna.

Doug Harris
źródło
znalazłeś rozwiązanie tego problemu? Czy jest w pobliżu praca?
MostlyHarmless
Nie, nigdy nie.
Doug Harris

Odpowiedzi:

4

W edytorze AppleScript utwórz następujący skrypt:

tell application "iCal Helper" to quit
delay 2
tell application "iCal Helper" to launch

Korzystając z aplikacji takiej jak Quicksilver, Butler, FastScripts (lite), Controllermate itp., Utwórz akcję / skrót, aby uruchomić skrypt.

Powodem ponownego uruchomienia aplikacji jest to, że chcemy ją otworzyć w tle dla następnego zdarzenia / wiadomości.

dotHTM
źródło
Czy wygrałem odpowiedź?
dotHTM
lol @Kio, komentuj pytanie w niewłaściwym miejscu! ; P
cregox
1

Możesz użyć jabłek. Spowoduje to włączenie alarmu iCal:

tell application "iCal Helper"
 activate
end tell

Możesz użyć czegoś takiego jak FastScripts, QuickSilver, LaunchBar lub wybranej przez Ciebie skrótu klawiaturowego, aby uruchomić skrypt za pomocą wybranego skrótu klawiaturowego, a następnie możesz wpisać escape, aby go odrzucić.

Nie sądzę, aby aplikacja iCal Helper była skryptowalna poza tym, ponieważ nie mogłem uzyskać klucza do ucieczki ani kliknięcia myszą za pomocą współrzędnych myszy. Mimo to możesz nadać skryptowi skrót, taki jak Option-Escape, a następnie wykonać kolejną ucieczkę ręcznie, aby ją skasować.

Nie mogłem tego zrobić na 10.5.8, ale może iCal Helper jest bardziej skryptowalny w 10.6?

tell application "iCal Helper"
 activate
 click at {1062, 300}
end tell

Dostałem współrzędne, wpisując Command Shift 4, ponieważ aplikacja zrzutów ekranu podaje współrzędne. Alarmy wygodnie pojawiają się w tym samym miejscu, ale rozdzielczość monitora spowoduje, że współrzędne będą inne niż moje. Jeśli ktoś ma większą wiedzę na temat AppleScript niż ja, jestem ciekaw, dlaczego dokładnie powyższa linia „kliknij na” nie działa.

ridogi
źródło
Wygląda na to, że skrypt zależy od określonej rozdzielczości ekranu. Kliknięcie współrzędnych XY będzie zachowywać się inaczej dla użytkowników z 1920 * 1200 niż dla użytkowników z 800 * 600. Użytkownicy posiadający konfiguracje z wieloma monitorami będą mieli jeszcze więcej liczb dzikich, jeśli ekran dodatkowy jest po lewej i / lub nad podstawową (ja sam lubię tę geometrię).
dotHTM
1
Ostatni akapit mojej odpowiedzi wyjaśnił, że są to współrzędne rozdzielczości mojego monitora, a inni będą musieli ustalić swoje własne współrzędne. Wyjaśniłem nawet, jak to rozgryźć.
ridogi
0

Uznany to

Ale oczywiście, jeśli klikniesz przycisk „x”, Mac OS X faktycznie przeniesie iCal na pierwszy plan, czy ci się to podoba, czy nie. Innymi słowy, nie ma możliwości odrzucenia alarmu iCal bez przełączania na iCal. To… irytujące.

admintech
źródło
1
Może to być kolejną irytacją związaną z tym, jak iCal obsługuje okna i alarmy, ale nie ma to nic wspólnego z odrzucaniem alarmów bez użycia myszy.
Doug Harris
0

Możesz nagrać akcję w automatorze i sprawdzić, czy to zadziała. Myślę, że będziesz musiał „włączyć dostęp do urządzeń wspomagających” w panelu uniwersalnej dostępności. Próbowałem tego z aplikacją innej firmy i działała całkiem dobrze, mimo że kontrolki nie zostały nazwane. Mam nadzieję, że jabłko postępuje zgodnie z własnymi wytycznymi. Po opracowaniu skryptu automatyzatora możesz uruchomić go za pomocą Quicksilver, o czym wspomina ridogi.

Jason Tholstrup
źródło
0

Żadna z pozostałych odpowiedzi nie zadziałała dla mnie. Używam poniższego kodu (znaleziono tutaj ) i działa doskonale na OSX Yosemite (10.10.2).

Poprawiłem też nieco kod, aby działał jako przepływ pracy Alfreda v2 i opublikował go na GitHub tutaj .

on run
    closeNotifications()
end run

on closeNotifications()
    try
        -- This function closes all currently displaying notification alerts. It used to also return the titles of each notification, which I have commented out to disable.
        tell application "System Events"
            tell process "Notification Center"
                set theseWindows to every window whose subrole is "AXNotificationCenterAlert" or subrole is "AXNotificationCenterBanner"
                --set theseTitles to {}
                repeat with thisWindow in theseWindows
                    try
                        -- Save the title of each alert window:
                        --set thisTitle to the value of static text 1 of scroll area 1 of thisWindow
                        --set the end of theseTitles to thisTitle

                        -- Close each alert:
                        click button "Close" of thisWindow
                    end try
                end repeat --"theseWindows"
                --return theseTitles
            end tell -- "NotCenter"
        end tell -- "SysEvents"

    on error errorMessage number errorNumber
        if errorNumber is errorNumber then
            my addAppletToAccessibilityList()
            error number -128
        end if
    end try
end closeNotifications

on addAppletToAccessibilityList()
    -- This function gets the user to enable Accessibility, for scripting the UI interface (hitting buttons etc.)
    set thisAppletFile to (path to me)
    tell application "Finder" to reveal thisAppletFile
    tell application "System Preferences"
        launch
        activate

        reveal anchor "Privacy_Assistive" of pane id "com.apple.preference.security"

        activate

        display alert ¬
            "Add Applet to Accessibility" message "In order to respond to user clicks on Notification panels and alerts, this applet must be added to the lost of apps approved to use accessibility controls of the OS." & return & return & ¬
            "To add this app:" & return & return & ¬
            "1) Click the lock icon (if it is locked) and enter your password." & return & return & ¬
            "2) If 'SystemUIServer.app' is in the list, check the box next to it's name." & return & return & ¬
            "Otherwise, if the applet's name is in the list, check the box next to it's name. If it's not in the list, drag the applet (currently shown in the Finder) into the list area." & return & return & ¬
            "3) Click the lock to re-lock the preference pane, close System Preferences."
    end tell
end addAppletToAccessibilityList
AndrewS
źródło