СИСТЕМА И СПОСОБ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ ГОРЯЧЕЙ КЛАВИШИ ЭКЗЕМПЛЯРАМИ ПРИЛОЖЕНИЯ
METHOD AND SYSTEM FOR SHARING HOTKEY BETWEEN APPLICATION INSTANCES

Область техники, к которой относится изобретение
Настоящее раскрытие относится к компьютерной технологии и, более конкретно, к способу и системе совместного использования горячей клавиши экземплярами приложения.
Уровень техники изобретения
При пользовании компьютером пользователь часто использует множество различных приложений, таких как инструмент программного обеспечения мгновенных сообщений (IM). Обычно, чтобы облегчить пользователю использование приложения, приложение может применять функцию горячих клавиш, обеспечиваемую системой, или пользователь может сам регистрировать горячие клавиши для приложения. Горячая клавиша может быть клавишей быстрого вызова команд, которая может быть комбинацией нескольких специальных клавиш на клавиатуре и может реализовывать специальную задачу. При использовании горячей клавиши рабочая эффективность может быть значительно повышена. Например, в операционной системе Windows горячая клавиша, подобная Del+Ctrl+Alt, может открывать диспетчер задач.
Раскрытие изобретения
Примеры, приведенные в настоящем раскрытии, обеспечивают систему совместного использования горячей клавиши экземплярами приложения, при которой горячая клавиша может наследоваться другим экземпляром приложения, когда экземпляр приложения, который в настоящее время зарегистрировал горячую клавишу, прекращает работу и горячая клавиша может использоваться совместно.
Примеры, приведенные в настоящем раскрытии, обеспечивают систему совместного использования горячей клавиши экземплярами приложения, при которой горячая клавиша может наследоваться другим экземпляром приложения, когда экземпляр приложения, который в настоящее время регистрировал горячую клавишу, прекращает работу и горячая клавиша может использоваться совместно.
Техническое решение, предоставляемое примерами настоящего раскрытия, показано ниже.
Способ совместного использования горячих клавиш между экземплярами приложения содержит этапы, на которых:
принимают сообщение освобождения горячей клавиши от экземпляра приложения, который регистрирует первую горячую клавишу, в котором сообщение освобождение горячей клавиши должно освобождать первую горячую клавишу и содержит идентификационную информацию о первой горячей клавише; и
в соответствии с идентификационной информацией о первой горячей клавише инициируют запрос регистрации для регистрации первой горячей клавиши.
Система совместного использования горячей экземплярами приложения содержит первый экземпляр приложения, в которой первый экземпляр приложения не регистрирует первую горячую клавишу, и содержит
первый модуль освобождения для приема сообщения освобождения горячей клавиши от экземпляра приложения, который зарегистрировал первую горячую клавишу, в котором сообщение освобождения горячей клавиши должно освобождать первую горячую клавишу и содержит идентификационную информацию о первой горячей клавише; и
модуль регистрации для инициирования в соответствии с идентификационной информацией о первой горячей клавише запроса регистрации для регистрации первой горячей клавиши.
Как можно видеть из приведенного выше технического решения, способ, представляемый примерами настоящего раскрытия, может содержать прием сообщения горячей клавиши от экземпляра приложения, который зарегистрировал первую горячую клавишу, в котором сообщение освобождения горячей клавиши должно освобождать первую горячую клавишу и содержит идентификационную информацию о первой горячей клавише; и в соответствии с идентификационной информацией о первой горячей клавише инициирует запрос регистрации для регистрации первой горячей клавиши. При использовании экземплярами приложения в примерах настоящего раскрытия, когда экземпляр приложения, который в настоящий момент зарегистрировал горячую клавишу, заканчивает работу, экземпляр приложения, который в настоящее время зарегистрировал горячую клавишу, может уведомить следующий экземпляр приложения, чтобы зарегистрировать горячую клавишу, так чтобы могла быть гарантирована транзитивность горячей клавиши, горячая клавиша могла использоваться совместно и точность реакции на горячую клавишу могла быть повышена.
Краткое описание чертежей
Фиг. 1 - блок-схема последовательности выполнения операций способа совместного использования горячей клавиши между экземплярами приложения, соответствующая примеру настоящего раскрытия.
Фиг. 2 - блок-схема последовательности выполнения операций процесса регистрации горячей клавиши множеством экземпляров приложения одного и того же типа, соответствующая примеру настоящего раскрытия.
Фиг. 3 - блок-схема последовательности выполнения операций процесса обработки сообщения горячей клавиши экземпляром приложения, который не зарегистрировал горячую клавишу, соответствующая примеру настоящего раскрытия.
Фиг. 4 - блок-схема последовательности выполнения операций процесса обработки сообщения горячей клавиши экземпляром приложения, который зарегистрировал горячую клавишу, соответствующая примеру настоящего раскрытия.
Фиг. 5 - блок-схема структуры системы совместного использования горячей клавиши между экземплярами приложения, соответствующая примеру настоящего раскрытия.
Фиг. 6 - структура системы совместного использования горячей клавиши между экземплярами приложения, соответствующая другому примеру настоящего раскрытия.
Осуществление изобретения
Здесь далее настоящее раскрытие будет описано подробно со ссылкой на сопроводительные чертежи и типовые примеры.
Обычно одно приложение может работать во множестве экземпляров. Принимая приложение IM в качестве примера, множество приложений IM, то есть множество экземпляров, могут работать одновременно. Множество экземпляров приложений одного и того же типа, которые работают одновременно, могут называться множеством экземпляров приложений этого типа. Множество экземпляров приложений различного типа, которые работают одновременно, могут называться множеством экземпляров приложений различных типов. Можно ожидать, что одна и та же горячая клавиша может использоваться либо множеством экземпляров приложений одного и того же типа, либо множеством экземпляров приложений различных типов.
Однако ни горячая клавиша, используемая множеством приложений различных типов, работающих одновременно, ни горячая клавиша, используемая множеством экземпляров приложений одного и того же типа, работающих одновременно, не может обычно быть эксклюзивной. Если приложение зарегистрировало горячую клавишу, другое приложение не может регистрировать горячую клавишу снова. Аналогично, если экземпляр приложения зарегистрировал горячую клавишу, то другой экземпляр приложения не может регистрировать горячую клавишу снова. В сущности, экземпляр приложения, которому не удается зарегистрировать горячую клавишу, не может обеспечивать удобный для пользователей путь ее использования. Кроме того, когда экземпляр приложения, который зарегистрировал горячую клавишу, заканчивает работу, горячая клавиша может быть забрана обратно системой, но другие экземпляры приложения могут не принять своевременно уведомление, что горячая клавиша освободилась, и, таким образом, не могут своевременно перерегистрировать горячую клавишу.
Предположим, что работают три экземпляра приложения IM одного и того же типа, где три экземпляра приложения IM могут соответственно упоминаться как AIM, BIM и CIM. При запуске каждый из экземпляров приложения IM может попытаться зарегистрировать горячую клавишу, образованную одной и той же комбинацией клавиш. Однако экземпляр приложения IM, который может первой зарегистрировать горячую клавишу (например, AIM), может успешно зарегистрировать горячую клавишу. Когда пользователь активирует горячую клавишу, AIM может принять сообщение о горячей клавише (например, горячая клавиша для извлечения сообщения (комбинацией клавиш по умолчанию может быть Ctrl+Alt+Z)). AIM успешно регистрирует горячую клавишу, a BIM и CIM могут потерпеть неудачу при регистрации горячей клавиши.
В случае 1: AIM, BIM и CIM работают одновременно и AIM успешно зарегистрировал горячую клавишу для извлечения сообщения. В это время, если сообщение послано к BIM, пользователь может нажать Ctrl+Alt+Z, чтобы включить горячую клавишу для извлечения сообщения, и AIM может принять сообщение горячей клавиши. Однако, поскольку для AIM не существует нового сообщения, AIM не может обработать сообщение горячей клавиши. В этом случае пользователь не может извлечь сообщение BIM. Этот случай не может удовлетворить ожиданиям пользователя и может вызвать у пользователя навязчивое неприятие и повлиять на опыт пользователя.
В случае 2: AIM, BIM и CIM работают одновременно и AIM успешно зарегистрировал горячую клавишу для извлечения сообщения, но AIM заканчивает работу. В это время, если сообщение посылается к BIM, горячая клавиша для извлечения сообщения не может включиться, когда пользователь нажимает Ctrl+Alt+Z. А раз так, пользователь не может извлечь сообщение BIM. Этот случай не может удовлетворить ожиданиям пользователя и может вызвать у пользователя навязчивое неприятие и повлиять на опыт пользователя.
В примерах настоящего раскрытия экземпляры приложения могут быть множеством экземпляров приложения одного и того же типа приложения или быть множеством экземпляров приложения различного типа приложений.
В примерах, соответствующих настоящему раскрытию, экземпляр приложения может работать на персональном компьютере, или может существовать в форме веб-страницы, или может работать на беспроводном устройстве, таком как мобильный телефон.
Далее примеры, соответствующие настоящему раскрытию, могут быть описаны с дополнительными подробностями, рассматривая множество экземпляров приложения одного и того же типа приложения в качестве типового примера. Однако специалисты в данной области техники могут признать, что описание может быть иллюстративным и может быть не предназначено для ограничения объема защиты примеров настоящего раскрытия.
Каждый из множества экземпляров приложения одного и того же типа приложения может инициировать запрос регистрации для регистрации горячей клавиши, когда запускается экземпляр приложения. Поскольку эти экземпляры приложения могут работать с приложениями одного и того же типа, горячие клавиши, регистрируемые этими экземплярами приложений, могут быть идентичными.
Например, в отношении приложения IM, горячая клавиша, подобная Ctrl+Alt+Z, может быть горячей клавишей извлечения сообщения. Когда запускается множество приложений IM, каждый из множества экземпляров приложения IM может пытаться регистрировать горячую клавишу Ctrl+Alt+Z в качестве горячей клавиши для извлечения сообщения. Затем может быть определено, была ли горячая клавиша, которая должна быть зарегистрирована экземпляром приложения, который может первым инициировать запрос регистрации для регистрации горячей клавиши, уже занята приложением другого типа (то есть приложение другого типа может не быть приложением IM). Если горячая клавиша не занята приложением другого типа, экземпляр приложения, который может первым инициировать запрос регистрации для регистрации горячей клавиши, может успешно зарегистрировать горячую клавишу. Если горячая клавиша занята приложением другого типа и приложение другого типа работает, может быть определено, что горячая клавиша занята, и для экземпляра приложения IM, который может первым инициировать запрос регистрации для регистрации горячей клавиши, может быть сделана подсказка, что регистрация горячей клавиши получила отказ. В этом случае для экземпляра приложения IM, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, может дополнительно быть сделана подсказка об изменении горячей клавиши и перерегистрации измененной горячей клавиши.
Когда экземпляр приложения успешно зарегистрировал горячую клавишу, если горячая клавиша включается, то есть появляется сообщение горячей клавиши, экземпляр приложения, который зарегистрировал горячую клавишу, может принять сообщение горячей клавиши. Экземпляр приложения, который зарегистрировала горячую клавишу, может рассылать сообщение горячей клавиши экземпляру приложения, который не зарегистрировал горячую клавишу, может определить, существует ли экземпляр приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши. В ответ на определение, что существует экземпляр приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши, экземпляр приложения, который не зарегистрировал горячую клавишу, может обрабатывать сообщение горячей клавиши и экземпляр приложения, который зарегистрировал горячую клавишу, может в ответ принимать информацию обратной связи об обработке сообщения горячей клавиши от экземпляра приложения, который не зарегистрировал горячую клавишу, и может закончить процесс. В противном случае в ответ на определение, что не существует экземпляра приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши, экземпляр приложения, который зарегистрировал горячую клавишу, может обрабатывать сообщение горячей клавиши и может закончить процесс.
На фиг. 1 представлена блок-схема последовательности выполнения операций способа совместного использования горячей клавиши между экземплярами приложения, соответствующая примеру настоящего раскрытия. Как показано на фиг. 1, способ может содержать следующие операции.
На этапе 101 сообщение освобождения горячей клавиши (которое может также упоминаться как сообщение регистрации горячей клавиши) может быть принято от экземпляра приложения, который зарегистрировал горячую клавишу. Сообщение освобождения горячей клавиши может освобождать горячую клавишу и может содержать идентификационную информацию об освобожденной горячей клавише.
В этом случае идентификационная информация об освобожденной горячей клавише может назначить конкретную комбинацию горячей клавиши.
На этапе 102 в соответствии с идентификационной информацией об освобожденной горячей клавише может быть инициирован запрос регистрации для регистрации освобожденной горячей клавиши.
В соответствии с примером настоящего раскрытия способ, показанный на фиг. 1, может дополнительно содержать следующие этапы, на которых:
после того как экземпляр приложения, который зарегистрировал горячую клавишу, запрашивает освобождение ресурсов горячей клавиши, экземпляр приложения, который зарегистрировал горячую клавишу, может поочередно посылать сообщение освобождения горячей клавиши другим экземплярам приложения, которые не регистрируют горячую клавишу Дополнительно, когда экземпляр приложения, который зарегистрировал горячую клавишу, заканчивает работу и после того, как экземпляр приложения, который зарегистрировал горячую клавишу, запрашивает освобождение ресурсов горячей клавиши, экземпляр приложения, который зарегистрировал горячую клавишу, может поочередно посылать сообщение освобождения горячей клавиши другим экземплярам приложения, которые не регистрируют горячую клавишу.
В примере, приведенном в настоящем раскрытии, после того как экземпляр приложения, который зарегистрировал горячую клавишу, запрашивает освобождение ресурсов горячей клавиши, экземпляр приложения, который зарегистрировал горячую клавишу, может в соответствии с заданным порядком послать сообщение освобождения горячей клавиши другим экземплярам приложения, которые не регистрируют горячую клавишу. В этом случае заданный порядок может, в частности, содержать:
порядок моментов времени запуска множества экземпляров приложения; и/или
хронологический порядок множества экземпляров приложения для приема сообщения освобождения горячей клавиши.
В соответствии с примером, приведенным в настоящем раскрытии, после операции инициирования запроса регистрации для регистрации горячей клавиши, основываясь на идентификационной информации об освобожденной горячей клавише, способ, показанный на фиг. 1, может дополнительно содержать следующие операции:
когда определено, что запрос регистрации для регистрации горячей клавиши получил отказ, другим экземплярам приложения поочередно может быть послан запрос для выяснения, была ли успешно зарегистрирована освобожденная клавиша;
когда какой-либо ответ на запрос указывает, что освобожденная горячая клавиша была успешно зарегистрирована, рассылка запроса может быть остановлена.
В соответствии с примером настоящего раскрытия, способ, показанный на фиг. 1, может дополнительно содержать следующие операции:
после того как экземпляр приложения успешно зарегистрировал горячую клавишу в сообщении с сообщением регистрации горячей клавиши, если сообщение клавиши существует, экземпляр приложения, который зарегистрировал горячую клавишу, может принять сообщение горячей клавиши, разослать сообщение горячей клавиши экземпляру приложения, который не зарегистрировал горячую клавишу, и может определить, существует ли экземпляр приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши. В ответ на определение, что существует экземпляр приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши, экземпляр приложения, который не зарегистрировал горячую клавишу, может обрабатывать сообщение горячей клавиши и экземпляр приложения, который зарегистрировал горячую клавишу, может в ответ принимать информацию обратной связи об обработке сообщения горячей клавиши от экземпляра приложения, который не зарегистрировала горячую клавишу. В противном случае, в ответ на определение, что не существует экземпляра приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши, экземпляр приложения, который зарегистрировал горячую клавишу, может обрабатывать сообщение горячей клавиши.
В качестве примера может рассматриваться горячая клавиша, извлекающая сообщение IM. Предположим, что работают два экземпляра приложения IM одного и того же типа приложения, где два экземпляра приложения IM могут соответственно упоминаться как AIM и BIM. В этом случае Ctrl+Alt+Z может регистрироваться в AIM как горячая клавиша для извлечения сообщения IM и BIM не зарегистрировал горячую клавишу. Когда пользователь нажимает Ctrl+Alt+Z, чтобы запустить горячую клавишу для извлечения сообщения IM, AIM может принимать сообщение горячей клавиши и может послать сообщение горячей клавиши к BIM. После приема сообщения горячей клавиши BIM может определить, обрабатывать ли сообщение горячей клавиши в соответствии с ситуацией для BIM. Конкретно, BIM может проверять, существует ли сообщение IM для BIM. Если сообщение IM для BIM существует, BIM может извлечь сообщение IM и ответить AIM сообщением, указывающим, что сообщение горячей клавиши обработано. Если сообщение IM для BIM не существует, BIM может не обрабатывать сообщение горячей клавиши и ответить AIM сообщением, указывающим, что сообщение горячей клавиши не обработано. В этом случае AIM может определить, обрабатывать ли сообщение горячей клавиши в соответствии с ситуацией для AIM. Конкретно, AIM может проверять, существует ли сообщение IM для AIM. Если сообщение IM для AIM существует, AIM может извлечь сообщение IM. Если сообщение IM для AIM не существует, AIM не может обрабатывать сообщение горячей клавиши.
В соответствии с примером настоящего раскрытия может быть введена операция определения порядка перерегистрации горячей клавиши. В этом случае способ, показанный на фиг. 1, может дополнительно содержать следующие операции:
когда экземпляр приложения, который зарегистрировал горячую клавишу, существует, в соответствии с порядком перерегистрации горячей клавиши, может быть послано сообщение регистрации горячей клавиши экземпляру приложения, являющемуся следующим по порядку экземпляром приложения, который зарегистрировал горячую клавишу. Следующий по порядку экземпляр приложения может регистрировать горячую клавишу в соответствии с сообщением регистрации горячей клавиши.
В этом случае порядок перерегистрации горячих клавиш может содержать, в частности:
порядок моментов времени запуска множества экземпляров приложения; и/или
хронологический порядок множества экземпляров приложения для приема сообщения регистрации горячей клавиши.
Можно видеть, что когда между экземплярами приложения используются примеры из настоящего раскрытия, когда экземпляр приложения, который в настоящее время зарегистрировал горячую клавишу, заканчивает работу, экземпляр приложения, который зарегистрировал горячую клавишу, может уведомить следующий экземпляр приложения о регистрации горячей клавиши. Другими словами, горячая клавиша может наследоваться следующим экземпляром приложения. Таким образом, недостаток, существующий на предшествующем уровне техники, при котором, когда экземпляр приложения, который зарегистрировал горячую клавишу, заканчивает работу, горячая клавиша забирается обратно системой и другой экземпляр приложения не может перерегистрировать и использовать горячую клавишу, может быть преодолен, так что транзитивность горячей клавиши может быть гарантирована, горячая клавиша может использоваться совместно и точность реакции на горячую клавишу может быть повышена.
Хотя выше перечислены некоторые конкретные типы приложения, чтобы описать примеры настоящего раскрытия, специалисты в данной области техники должны признать, что перечисление может служить для иллюстративных целей и не может предназначаться для ограничения объема защиты настоящего раскрытия.
На деле эти экземпляры приложения могут принадлежать к разным типам приложения. В этом случае примеры, соответствующие настоящему раскрытию, могут применяться к множеству экземпляров приложения, которые могут принадлежать приложениям с различными типами приложений и могут желать регистрировать одну и ту же горячую клавишу, а также могут применяться к совместному использованию горячей клавиши после того, как множество экземпляров приложения с различными типами приложения закончат работу. Здесь далее примеры настоящего раскрытия могут быть описаны с дополнительными подробностями со ссылкой на экземпляры приложения одного и того же типа.
В соответствии с примером, соответствующим настоящему изобретению, когда работает множество экземпляров приложения одного и того же типа, каждый из множества экземпляров приложения одного и того же типа может регистрировать горячую клавишу в системе при запуске каждого из экземпляров приложения. Для каждого из множества экземпляров приложения, если регистрация горячей клавиши успешна, процесс регистрации горячей клавиши может быть закончен. Если горячая клавиша зарегистрирована приложением другого типа, то пользователю может быть послано в ответ сообщение о неудаче регистрации горячей клавиши и пользователю может быть сделана подсказка об изменении горячей клавиши и перерегистрации измененной горячей клавиши. Если горячая клавиша не зарегистрирована приложением другого типа, но регистрация терпит неудачу, экземпляр приложения может через перекрестный процесс поочередно подать запрос множеству экземпляров приложения одного и того же типа о том, была ли горячая клавиша успешно зарегистрирована. Если результатом ответа на запрос является успешная регистрация, запрос может быть прерван и процесс регистрации горячей клавиши может быть закончен. Если ответы на все запросы сообщают о неудаче регистрации (то есть все другие экземпляры приложения одного и того же типа не регистрируют горячую клавишу), может появиться подсказка, чтобы подсказать пользователю, что регистрация горячей клавиши является неудачной и горячая клавиша не может быть использована.
На фиг. 2 представлена блок-схема последовательности выполнения операций процесса регистрации горячей клавиши множеством экземпляров приложения одного и того же типа, соответствующая примеру настоящего раскрытия. Как показано на фиг. 2, процесс может содержать следующие этапы.
На этапе 201 экземпляр А приложения может инициировать запрос регистрации для регистрации горячей клавиши S (то есть комбинации нескольких клавиш) в операционной системе и может успешно регистрировать горячую клавишу S.
На этапе 202 экземпляр В приложения может инициировать запрос регистрации для регистрации горячей клавиши S в операционной системе. Операционная система может принять запрос регистрации, определить, что экземпляр А приложения уже зарегистрировал горячую клавишу S и может ответить экземпляру В приложения сообщением с отказом регистрации горячей клавиши.
На этапе 203 экземпляр В приложения может послать сообщение запроса экземпляру А приложения, чтобы запросить, зарегистрировал ли экземпляр А приложения горячую клавишу S.
На этапе 204 экземпляр А приложения может послать сообщение запроса экземпляру В приложения, чтобы информировать экземпляр В приложения, что экземпляр А приложения зарегистрировал горячую клавишу S. Экземпляр В приложения может принять ответное сообщение и проанализировать ответное сообщение, чтобы определить, что горячая клавиша S была зарегистрирована экземпляром А приложения.
На этапе 205 экземпляр С приложения может инициировать запрос регистрации для регистрации горячей клавиши S в операционной системе. Операционная система может принять запрос регистрации, определить, что экземпляр А приложения уже зарегистрировал горячую клавишу S и может ответить экземпляру С приложения сообщением с отказом регистрации горячей клавиши.
На этапе 206 экземпляр С приложения может послать сообщение запроса экземпляра В приложения, чтобы запросить, зарегистрировал ли экземпляр В приложения горячую клавишу S.
На этапе 207 экземпляр В приложения может послать ответное сообщение экземпляру С приложения, чтобы информировать экземпляр С приложения, что экземпляр В приложения не зарегистрировал горячую клавишу S.
На этапе 208 экземпляр С приложения может послать сообщение запроса экземпляра А приложения, чтобы запросить, зарегистрировал ли экземпляр А приложения горячую клавишу S.
На этапе 209 экземпляр А приложения может послать ответное сообщение экземпляру С приложения, чтобы информировать экземпляр С приложения, что экземпляр А приложения зарегистрировал горячую клавишу S. Экземпляр С приложения, анализируя ответное сообщение, может определить, что горячая клавиша S зарегистрирована экземпляром А приложения.
К этому моменту цели операций регистрации горячей клавиши множеством экземпляров приложения одного и того же типа могут быть достигнуты. В этом случае, когда пользователь нажимает горячую клавишу, система может развернуть сообщение горячей клавиши и экземпляр приложения, который зарегистрировал горячую клавишу, может принять сообщение горячей клавиши. Экземпляр приложения, который зарегистрировал горячую клавишу, может посредством перекрестных процессов поочередно разослать сообщение горячей клавиши каждому из экземпляров приложения одного и того же типа. Каждый из других экземпляров приложения может принять сообщение горячей клавиши в перекрестном процессе и может определить в соответствии с ситуацией для самого экземпляра приложения, обрабатывать ли сообщение горячей клавиши. Если экземпляр приложения решает обрабатывать сообщение горячей клавиши, экземпляр приложения может обрабатывать сообщение горячей клавиши и может ответить экземпляру приложения, который зарегистрировал горячую клавишу, сообщением, указывающим, что сообщение горячей клавиши обрабатывается. Если экземпляр приложения может решить не обрабатывать сообщение горячей клавиши, экземпляр приложения ответить экземпляру приложения, который зарегистрировал горячую клавишу, сообщением, указывающим, что сообщение горячей клавиши не обрабатывается. Когда принимается ответное сообщение, указывающее, что сообщение горячей клавиши обрабатывается, экземпляр приложения, который зарегистрировал горячую клавишу, может прервать оставшуюся рассылку. Если все ответные сообщения являются сообщениями, указывающими, что сообщение горячей клавиши не обрабатывается, экземпляр приложения, который зарегистрировал горячую клавишу, может определить, обрабатывать ли сообщение горячей клавиши в соответствии с ситуацией для экземпляра приложения, который зарегистрировал горячую клавишу.
В соответствии с этой логикой, после приема сообщения горячей клавиши системы экземпляр приложения, который зарегистрировал горячую клавишу, может сначала послать сообщение горячей клавиши экземпляру приложения, который не зарегистрировал горячую клавишу, тогда как экземпляр приложения, который зарегистрировал горячую клавишу, может быть последним экземпляром приложения, который может обрабатывать сообщение горячей клавиши. Таким способом все экземпляры приложения (как экземпляр приложения, который зарегистрировал горячую клавишу, так и экземпляр приложения, который не зарегистрировал горячую клавишу) могут иметь возможность обрабатывать сообщение горячей клавиши.
Основываясь на приведенном выше подробном анализе и процессе, показанном на фиг. 2, на фиг. 3 представлена блок-схема последовательности выполнения операций процесса обработки сообщения горячей клавиши экземпляром приложения, который не зарегистрировал горячую клавишу, соответствующая примеру настоящего раскрытия. Пример, показанный на фиг. 3, может быть типовым примером приложения после регистрации горячей клавиши, основываясь на процессе, показанном на фиг. 2. Как можно видеть для процесса, показанного на фиг. 2, в примере, соответствующем настоящему раскрытию, экземпляр А приложения зарегистрировал горячую клавишу. Как показано на фиг. 3, процесс может содержать следующие этапы.
На этапе 301, когда пользователь запускает горячую клавишу S, экземпляр А приложения может принимать сообщение горячей клавиши и может послать экземпляру В приложения сообщение горячей клавиши.
На этапе 302 экземпляр В приложения может принять сообщение горячей клавиши и может определить, обрабатывать ли сообщение горячей клавиши. В этом случае экземпляр В приложения может решить не обрабатывать сообщение горячей клавиши и может ответить экземпляру А приложения сообщением, указывающим, что сообщение горячей клавиши не обрабатывается.
На этапе 303 экземпляр А приложения может принимать посланное экземпляром В приложения сообщение, указывающее, что сообщение горячей клавиши не обрабатывается, и может послать экземпляру С приложения сообщение горячей клавиши.
На этапе 304 экземпляр С приложения может принимать сообщение горячей клавиши и может определить, обрабатывать ли сообщение горячей клавиши. В этом случае экземпляр С приложения может решить обрабатывать сообщение горячей клавиши. Экземпляр С приложения может обрабатывать сообщение горячей клавиши и может ответить экземпляру А приложения сообщением, указывающим, что сообщение горячей клавиши обрабатывается.
Основываясь на приведенном выше подробном анализе и процессе, показанном на фиг. 2, на фиг. 4 представлена блок-схема последовательности выполнения операций процесса обработки сообщения горячей клавиши экземпляром приложения, который зарегистрировал горячую клавишу, соответствующая примеру настоящего раскрытия. Пример, показанный на фиг. 4, может быть типовым примером приложения после регистрации горячей клавиши, основанным на процессе, показанном на фиг. 2. Как можно видеть для процесса, показанного на фиг. 2, в примере, соответствующем настоящему раскрытию, экземпляр А приложения зарегистрировал горячую клавишу. Как показано на фиг. 4, процесс может содержать следующие этапы.
На этапе 401, когда пользователь запускает горячую клавишу S, экземпляр А приложения может принять сообщение горячей клавиши и может посылать экземпляру В приложения сообщение горячей клавиши.
На этапе 402 экземпляр В приложения может принять сообщение горячей клавиши и может определить, обрабатывать ли сообщение горячей клавиши. В этом случае экземпляр В приложения может решить не обрабатывать сообщение горячей клавиши и может ответить экземпляру А приложения сообщением, указывающим, что сообщение горячей клавиши не обрабатывается.
На этапе 403 экземпляр А приложения может принять посланное экземпляром В приложения сообщение, указывающее, что сообщение горячей клавиши не обрабатывается, и может послать экземпляру С приложения сообщение горячей клавиши.
На этапе 404 экземпляр С приложения может принять сообщение горячей клавиши и может определить, обрабатывать ли сообщение горячей клавиши. В этом случае экземпляр С приложения может решить не обрабатывать сообщение горячей клавиши и может ответить экземпляру А приложения сообщением, указывающим, что сообщение горячей клавиши не обрабатывается.
На этапе 405 экземпляр А приложения может принять сообщение, указывающее, что сообщение горячей клавиши не обрабатывается, посланное экземпляром С приложения, определить, что все экземпляры приложения, которые не регистрируют горячую клавишу, не должны обрабатывать сообщение горячей клавиши и могут обрабатывать сообщение горячей клавиши, основываясь на ситуации экземпляра А приложения.
Основываясь на приведенном выше подробном анализе, примеры настоящего раскрытия могут также обеспечивать систему совместного использования горячей клавиши между экземплярами приложения.
На фиг. 5 представлена структуры системы совместного использования горячей клавиши экземплярами приложения в соответствии с примером настоящего раскрытия. Как показано на фиг. 5, система может содержать экземпляр приложения, который не зарегистрировал горячую клавишу, в которой экземпляр приложения, который не зарегистрировал горячую клавишу, может содержать первый модуль 501 освобождения и модуль 502 регистрации.
Первый модуль 501 освобождения может принять сообщение освобождения горячей клавиши (которое может также упоминаться как сообщение регистрации горячей клавиши), посланное экземпляром приложения, который зарегистрировал горячую клавишу, причем сообщение освобождения горячей клавиши может освободить горячую клавишу и может содержать идентификационную информацию об освобожденной горячей клавише.
Модуль 502 регистрации может инициировать запрос регистрации для регистрации горячей клавиши, основываясь на идентификационной информации о горячей клавише, принятой первым модулем 501 освобождения.
На основе структуры системы, показанной на фиг. 5, на фиг. 6 представлена структура системы совместного использования горячей клавиши между экземплярами приложения, соответствующая другому примеру настоящего раскрытия. Как показано на фиг. 6, система совместного использования горячей клавиши между экземплярами приложения, как показано на фиг. 5, может также содержать экземпляр приложения, который зарегистрировал горячую клавишу. Экземпляр приложения, который зарегистрировал горячую клавишу, может содержать второй модуль 503 освобождения.
Второй модуль 503 освобождения после запроса освобождения горячей клавиши может поочередно посылать другим экземплярам приложения, которые не регистрируют горячую клавишу, сообщение освобождения горячей клавиши.
В примере, соответствующем настоящему раскрытию, когда экземпляр приложения, который зарегистрировал горячую клавишу, заканчивает работу и после того, как экземпляр приложения, который зарегистрировал запросы горячей клавиши, чтобы освободить ресурсы горячей клавиши, второй модуль 503 освобождения может поочередно посылать сообщение горячей клавиши другим экземплярам приложения, которые не регистрируют горячую клавишу.
В системе совместного использования горячей клавиши экземплярами приложения, как показано на фиг. 6, экземпляр приложения, который не зарегистрировал горячую клавишу, может дополнительно содержать модуль 504 определения и процессорный модуль 505.
После того как модуль 502 регистрации инициирует запрос регистрации для регистрации освобожденной горячей клавиши и в ответ на определение, что запрос регистрации для регистрации освобожденной клавиши имеет отказ, модуль 504 определения может поочередно послать запрос другим экземплярам приложения для выяснения, была ли горячая клавиша успешно зарегистрирована. Когда какой-либо результат, возвращенный в ответ на запрос, указывает, что горячая клавиша была успешно зарегистрирована, модуль 504 определения может остановить рассылку запроса.
Когда экземпляр приложения, который не зарегистрировал горячую клавишу, успешно зарегистрировал горячую клавишу и существует сообщение горячей клавиши, процессорный модуль 505 может принять сообщение горячей клавиши; разослать сообщение горячей клавиши экземплярам приложения, которые не регистрируют горячую клавишу и должны обрабатывать сообщение горячей клавиши; когда существует экземпляр приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши, процессорный модуль 505 принимает информацию обратной связи об обработке сообщения горячей клавиши в ответ от экземпляра приложения, который не зарегистрировал горячую клавишу; когда не существует экземпляра приложения, который не зарегистрировал горячую клавишу и должен обрабатывать сообщение горячей клавиши, процессорный модуль 505 обрабатывают сообщение горячей клавиши.
В примере, соответствующем настоящему раскрытию, второй модуль 503 освобождения после запроса освобождения ресурсов горячей клавиши может послать сообщение освобождения горячей клавиши другим экземплярам приложения в соответствии с заданным порядком. В этом случае заданный порядок может содержать, в частности:
порядок моментов времени запуска множества экземпляров приложения; и/или
хронологический порядок множества экземпляров приложения для приема сообщения освобождения горячей клавиши.
Можно видеть, что когда техническое решение совместного использования горячей клавиши путем перекрестного процесса используется экземплярами приложения одного и того же типа или приложениями различного типа, обеспечиваемые посредством примеров настоящего раскрытия, конфликты горячих клавиш между приложениями могут быть разрешены и когда экземпляр приложения, который зарегистрировал горячую клавишу, заканчивает работу, горячая клавиша может быть своевременно и эффективно унаследована и, таким образом, ресурсы горячей клавиши могут использоваться совместно и практика пользователя может быть дополнительно оптимизирована.
Здесь далее примеры настоящего раскрытия могут быть описаны с дополнительными подробностями, рассматривая приложение IM в качестве примера. Для приложения IM решение совместного использования горячей клавиши посредством перекрестного процесса, представленное примерами настоящего раскрытия, может быть достигнуто посредством удаленного вызова модели компонентных объектов (СОМ). Конкретно, компонент IM может быть создан первым, и набор интерфейсов (которые могут содержать интерфейс IMAPI и интерфейс IMMainCreator) может быть реализован, основываясь на спецификации СОМ. Компонент IM и набор интерфейсов могут быть зарегистрированы в системе. Среди них интерфейс IMAPI может обеспечивать способ запроса, зарегистрирована ли горячая клавиша, и способ реакции на сообщение горячей клавиши. Интерфейс IMMainCreator может обеспечивать способ прохождения всех экземпляров приложения IM и может давать ответы всех интерфейсов IMAPI запросчику.
Когда экземпляр приложения IM имеет отказ при регистрации горячей клавиши, экземпляр приложения IM может получить от системы компонент IM и интерфейс IMMainCreator компонента IM. Интерфейс IMMainCreator посредством способа прохождения всех экземпляров приложения IM может получить интерфейсы IMAPI для всех экземпляров приложения IM, работающих в настоящее время, и может поочередно вызывать интерфейсы IMAPI, чтобы запрашивать, зарегистрирована ли горячая клавиша. В этом случае, если интерфейс IMAPI отвечает сообщением, указывающим, что горячая клавиша зарегистрирована, дальнейшие запросы могут быть прерваны и процесс может быть закончен. Если все интерфейсы IMAPI могут ответить сообщением, что горячая клавиша не зарегистрирована, может быть выведена подсказка, чтобы информировать пользователя, (эта операция может быть специально определена специальным продуктом) и процесс может быть закончен.
Когда экземпляр приложения IM принимает сообщение горячей клавиши системы, экземпляр приложения IM может получить от системы компонент IM и интерфейс IMMainCreator компонента IM. Интерфейс IMMainCreator может получить посредством способа прохождения всех экземпляров приложения IM интерфейсы IMAPI для всех экземпляров приложения IM, работающих в настоящее время, и может поочередно вызывать интерфейсы IMAPI, чтобы получить ответ на сообщение горячей клавиши. В этом случае, если интерфейс IMAPI отвечает сообщением, указывающим, что сообщение горячей клавиши обработано, дальнейшие запросы могут быть прерваны и процесс может быть закончен. Если все интерфейсы IMAPI могут вернуть ответ с сообщением, указывающим, что сообщение горячей клавиши не обработано, экземпляр приложения IM, который принимает системное сообщение горячей клавиши, может обработать сообщение горячей клавиши и может закончить процесс.
Приведенный выше пример может описывать, как достигнуть совместного разделения горячей клавиши в перекрестном процессе посредством удаленного вызова СОМ. Примеры, приведенные в настоящем раскрытии, могут не ограничиваться этим типовым примером. Совместное использование горячей клавиши в перекрестном процессе может также быть достигнуто различными путями, такими как совместно используемая память или анонимный канал и т.д.
Аналогично, хотя приведенные выше примеры настоящего раскрытия могут быть описаны, принимая в качестве примера приложение IM, примеры настоящего раскрытия могут не ограничиваться приложением IM. Примеры в настоящем раскрытии могут также применяться к любым другим соответствующим сценариям.
При использовании примеров, соответствующих настоящему раскрытию, вышеупомянутые три экземпляра AIM, BIM и CIM приложения могут также использоваться в качестве примера.
В случае 1, который использует примеры из настоящего раскрытия, AIM, BIM и CIM могут работать одновременно и AIM может успешно регистрировать горячую клавишу для извлечения сообщения. В этом случае сообщение посылается к BIM. Пользователь может нажать Ctrl+Alt+Z, чтобы запустить горячую клавишу для извлечения сообщения, и AIM может принять сообщение горячей клавиши. После приема горячей клавиши AIM может направить сообщение горячей клавиши к BIM (альтернативно, AIM может направить сообщение горячей клавиши к CIM; CIM может определить, что CIM не нуждается в обработке горячей клавиши и может ответить AIM сообщением, указывающим, что сообщение горячей клавиши не обрабатывается; AIM может принять сообщение, что горячая клавиша не обрабатывается, и может направить сообщение горячей клавиши к BIM). BIM может принять сообщение горячей клавиши, определить, что существует новое сообщение, развернуть новое сообщение и может ответить сообщением AIM, указывающим, что сообщение горячей клавиши обрабатывается. Это решение удовлетворяет ожиданиям пользователя и улучшает практику пользователя.
В случае 2, который использует примеры из настоящего раскрытия, AIM, BIM и CIM могут работать одновременно AIM может успешно регистрировать горячую клавишу для извлечения сообщения и затем закончить работу. Когда AIM заканчивает работу, AIM может послать к BIM и CIM сообщение регистрации горячей клавиши (которое может также упоминаться как сообщение освобождения горячей клавиши) соответственно, так чтобы уведомить BIM и CIM о перерегистрации горячей клавиши. BIM и CIM могут принять сообщение регистрации горячей клавиши и могут немедленно зарегистрировать горячую клавишу. Однако в соответствии с установленным порядком экземпляр приложения IM, который может первым зарегистрировать горячую клавишу, может успешно зарегистрировать горячую клавишу. В этом случае, полагая, что BIM успешно зарегистрировала горячую клавишу, BIM, по существу, занимает место AIM. Когда пользователь нажимает Ctrl+Alt+Z, чтобы запустить горячую клавишу для извлечения сообщения, BIM может принимать сообщение горячей клавиши и может рассылать сообщение горячей клавиши. Это решение удовлетворяет ожиданиям пользователя и улучшает практику пользователя.
Хотя представленные выше примеры настоящего раскрытия могут быть описаны принимая в качестве примера приложение IM, специалисты в данной области техники должны признать, что список может служить для иллюстративных целей и может не быть предназначен ограничивать объем защиты настоящего раскрытия.
Когда примеры настоящего раскрытия используются между экземплярами приложения, когда экземпляр приложения, который в настоящий момент зарегистрировал горячую клавишу, заканчивает работу, экземпляр приложения, который в настоящее время зарегистрировал горячую клавишу, может уведомить следующий экземпляр приложения, чтобы зарегистрировать горячую клавишу, так чтобы могла быть гарантирована транзитивность горячей клавиши, горячая клавиша могла использоваться совместно и точность реакции на горячую клавишу могла быть повышена.
Выше приведены несколько примеров настоящего раскрытия и они не используются для ограничения объема защиты настоящего раскрытия. Любые модификации, эквиваленты, усовершенствования и т.д., сделанные согласно сущности и принципам настоящего раскрытия, должны содержаться в объеме защиты настоящего раскрытия.