Как проверить, нажата ли клавиша выбора при запуске приложения Mac Bash - PullRequest
3 голосов
/ 26 ноября 2010

У меня относительно простой вопрос.

У меня есть несколько приложений для Mac, на которых средства запуска написаны на bash.Я хотел добавить небольшую функцию в панели запуска, предоставив другим пользователям доступ к config.app или к чему-то другому, расположенному в / Contents / Resources, когда они нажимают клавишу «option / alt» при запуске приложения.Вроде как iTunes или iPhoto, где вы можете получить доступ к небольшому меню опций.

Я не знаю, как должен выглядеть код, когда он чисто в bash;Я нашел несколько примеров, в которых используются яблочные и / или какао-крючки, но ни одного из них не было в bash.

Что-то вроде: if 'optionKeyDown'; then open "$WORKDIR/../Resources/config.app"

Или это вообще невозможно в чистом виде?

1 Ответ

2 голосов
/ 26 ноября 2010

Здесь есть хорошее решение: http://lists.apple.com/archives/applescript-users/2009/Sep/msg00374.html

Возьмите следующий код:

#import <Carbon/Carbon.h>

int main (int argc, const char * argv[]) {
    unsigned int modifiers = GetCurrentKeyModifiers();

    if (argc == 1)
        printf("%d\n", modifiers);

    else {

        int i, result = 1;
        for (i = 1; i < argc; ++i) {

            if (0 == strcmp(argv[i], "shift"))
                result = result && (modifiers & shiftKey);

            else if (0 == strcmp(argv[i], "option"))
                result = result && (modifiers & optionKey);

            else if (0 == strcmp(argv[i], "cmd"))
                result = result && (modifiers & cmdKey);

            else if (0 == strcmp(argv[i], "control"))
                result = result && (modifiers & controlKey);

            else if (0 == strcmp(argv[i], "capslock"))
                result = result && (modifiers & alphaLock);

        }
        printf("%d\n", result);
    }
    return 0;
}

Вставьте его в файл с именем, например, keys.m.

Затем создайте утилиту командной строки следующим образом:

$ gcc keys.m -framework Carbon -o keys

Поместите исполняемый файл keys где-нибудь на вашем пути, например. /usr/local/bin или даже просто в том же каталоге, что и ваш bash-скрипт, тогда вы можете назвать его, например, как. keys option и проверьте возвращаемую строку на «0» или «1».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...