СИСТЕМА И СПОСОБ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ ГОРЯЧЕЙ КЛАВИШИ МЕЖДУ ЭКЗЕМПЛЯРАМИ ПРИЛОЖЕНИЙ
SYSTEM AND METHOD 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 успешно регистрирует горячую клавишу, а BIM и CIM могут иметь отказ при регистрации горячей клавиши.
В случае 1: AIM, BIM и CIM работают одновременно и AIM успешно регистрирует горячую клавишу для извлечения сообщения. В это время, если сообщение послано к BIM, пользователь может нажать Ctrl+Atl+Z, чтобы включить горячую клавишу для извлечения сообщения, и AIM может принять сообщение горячей клавиши. Однако, поскольку для AIM не существует нового сообщения, AIM не может обрабатывать сообщение горячей клавиши. В этом случае пользователь не может извлечь сообщение BIM. Этот случай не может удовлетворить ожидания пользователя и может вызвать у пользователя навязчивое неприятие и повлиять на практику пользователя.
В случае 2: AIM, BIM и CIM работают одновременно и AIM успешно регистрирует горячую клавишу для извлечения сообщения, но AIM заканчивает работу. В это время, если сообщение посылается к BIM, горячая клавиша для извлечения сообщения не может включиться, когда пользователь нажимает Ctrl+Atl+Z. А раз так, пользователь не может извлечь сообщение BIM. Этот случай не может удовлетворить ожидания пользователя и может вызвать у пользователя навязчивое неприятие и повлиять на практику пользователя.
На фиг. 1 представлена блок-схема последовательности выполнения операций способа совместного использования горячей клавиши между копиями приложения в соответствии с примером настоящего раскрытия. Как показано на фиг. 1, способ может содержать следующие операции.
На этапе 101, когда существует сообщение горячей клавиши, копия приложения, которая регистрирует горячую клавишу, может принять сообщение горячей клавиши.
В соответствии с примером настоящего раскрытия копия приложения может быть множеством копий приложения с одним и тем же типом приложения. В этом случае, каждая из множества копий приложения с одним и тем же типом приложения при запуске копии приложения может инициировать запрос регистрации для регистрации горячей клавиши. Поскольку эти копии приложения могут работать с приложениями одного и того же типа, горячие клавиши, регистрируемые этими копиями приложений, могут быть идентичными. Например, в отношении приложения IM, горячая клавиша, подобная Ctrl+Atl+Z, может быть горячей клавишей извлечения сообщения. Когда запускается множество приложений IM, каждая из множества копий приложения IM может пытаться регистрировать горячую клавишу Ctrl+Atl+Z в качестве горячей клавиши для извлечения сообщения.
Затем может быть определено, была ли горячая клавиша, которая должна быть зарегистрирована копией приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, уже занята приложением другого типа (то есть, приложение другого типа может не быть приложением IM). Если горячая клавиша не занята приложением другого типа, копия приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, может успешно зарегистрировать горячую клавишу. Если горячая клавиша занята приложением другого типа и приложение другого типа работает, может быть определено, что горячая клавиша занята, и копии приложения IM, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, может быть дана подсказка, что регистрация горячей клавиши имеет отказ. В этом случае копии приложения IM, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, может дополнительно быть подсказано об изменении горячей клавиши и перерегистрации измененной горячей клавиши.
Когда пользователь нажимает горячую клавишу, то есть появляется сообщение горячей клавиши, копия приложения, которая регистрирует горячую клавишу, может принять сообщение горячей клавиши.
На этапе 102 копия приложения, которая регистрирует горячую клавишу, может распространить сообщение горячей клавиши копии приложения, которая не регистрирует горячую клавишу.
На этапе 103 может быть определено, существует ли копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши. В ответ на определение, что существует копия приложения, которая не регистрирует первую горячую клавишу и должна обрабатывать сообщение горячей клавиши, могут быть выполнены операции этапа 104 и процесс может быть закончен. В ответ на определение, что не существует копия приложения, которая не регистрирует первую горячую клавишу и должна обрабатывать сообщение горячей клавиши, могут быть выполнены операции этапа 105 и процесс может быть закончен.
На этапе 104 копия приложения, которая не регистрирует горячую клавишу, может обрабатывать сообщение горячей клавиши и копия приложения, которая регистрирует горячую клавишу, может принять информацию обратной связи об обработке сообщения горячей клавиши, переданное в ответ от копии приложения, которая не регистрирует горячую клавишу.
На этапе 105 копия приложения, которая регистрирует горячую клавишу, может обрабатывать сообщение горячей клавиши.
В соответствии с примером настоящего раскрытия способ, показанный на фиг. 1, может дополнительно содержать определение копии приложения, которая регистрирует горячую клавишу, из числа копий приложения. Конкретно, одна или более копий приложения может инициировать запрос регистрации для регистрации горячей клавиши. Может быть определено, занята ли горячая клавиша приложением другого типа. Если горячая клавиша не занята, копия приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, может зарегистрировать горячую клавишу. Когда горячая клавиша занята, может быть сделана подсказка копии приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, что регистрация горячей клавиши имеет отказ.
В соответствии с примером настоящего раскрытия способ, показанный на фиг. 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 зарегистрирована копией А приложения.
К этому моменту могут быть достигнуты цели операций регистрации горячей клавиши множеством копий приложения одного и того же типа. В этом случае, когда пользователь нажимает горячую клавишу, система может развернуть сообщение горячей клавиши и копия приложения, которая регистрирует горячую клавишу, может принять сообщение горячей клавиши. Копия приложения, которая регистрирует горячую клавишу, может посредством перекрестных процессов поочередно распространить сообщение горячей клавиши копиям приложения одного и того же типа, которые не регистрируют горячую клавишу. Каждая из других копий приложения, которые не регистрируют горячую клавишу, может принимать сообщение горячей клавиши перекрестного процесса и может определить в соответствии с ситуацией у самой копии приложения, обрабатывать ли сообщение горячей клавиши. Если копия приложения, которая не регистрирует горячую клавишу, может решить обрабатывать сообщение горячей клавиши, копия приложения, которая не регистрирует горячую клавишу, может обрабатывать сообщение горячей клавиши и может ответить сообщением, указывающим, что сообщение горячей клавиши обрабатывается в копии приложения, которая регистрирует горячую клавишу. Если копия приложения, которая не регистрирует горячую клавишу, может решить не обрабатывать сообщение горячей клавиши, копия приложения, которая не регистрирует горячую клавишу, может ответить сообщением, указывающим, что сообщение горячей клавиши не обрабатывается в копии приложения, которая регистрирует горячую клавишу. Когда принимается одно ответное сообщение, указывающее, что сообщение горячей клавиши обрабатывается, копия приложения, которая регистрирует горячую клавишу, может прервать оставшееся распределение. Если все ответные сообщения являются сообщениями, указывающими, что сообщение горячей клавиши не обрабатывается, копия приложения, которая регистрирует горячую клавишу, может решить, обрабатывать ли сообщение горячей клавиши в соответствии с ситуацией для копии приложения, которая регистрирует горячую клавишу.
Горячая клавиша, извлекающая сообщение IM, может рассматриваться в качестве примера. Предположим, что работают две копии приложения IM одного и того же типа приложения, где две копии приложения IM могут соответственно упоминаться как AIM и BIM. В этом случае, Ctrl+Atl+Z может регистрироваться в AIM как горячая клавиша для извлечения сообщения IM и BIM не регистрирует горячую клавишу. Когда пользователь нажимает Ctri+Atl+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 может не обрабатывать сообщение горячей клавиши.
В соответствии с этой логикой, после приема сообщения горячей клавиши системы копия приложения, которая регистрирует горячую клавишу, может сначала послать сообщение горячей клавиши копии приложения, которая не регистрирует горячую клавишу, тогда как копия приложения, которая регистрирует горячую клавишу, может быть последней копией приложения, которая может обрабатывать сообщение горячей клавиши. Таким способом все копии приложения (как копия приложения, которая регистрирует горячую клавишу, так и копия приложения, которая не регистрирует горячую клавишу) могут иметь возможность обрабатывать сообщение горячей клавиши.
Основываясь на приведенном выше подробном анализе и процессе, показанном на фиг. 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 распространения и процессорный модуль 503, в котором
когда существует сообщение горячей клавиши, модуль 501 регистрации может принимать сообщение горячей клавиши;
модуль 502 распространения может распространять сообщение горячей клавиши копии приложения, которая не регистрирует горячую клавишу, в которой сообщение горячей клавиши принимается модулем 501 регистрации; и
процессорный модуль 503 может определять, существует ли копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши; в ответ на определение, что существует копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши, принимает информацию обратной связи об обработке сообщения горячей клавиши, посланную в ответ от копии приложения, которая не регистрирует горячую клавишу; в противном случае, в ответ на определение, что не существует копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши, обрабатывает сообщение горячей клавиши, принятое модулем 501 регистрации.
В соответствии с примером настоящего раскрытия, копии приложения могут иметь один и тот же тип приложения.
В соответствии с примером настоящего раскрытия, модуль 501 регистрации может дополнительно инициировать запрос регистрации для регистрации горячей клавиши.
Основываясь на структуре системы, показанной на фиг. 5, на фиг. 6 представлена структура системы совместного использования горячей клавиши между копиями приложения в соответствии с другим примером настоящего раскрытия. Как показано на фиг. 6, система совместного использования горячей клавиши между копиями приложения, как показано на фиг. 5, может дополнительно содержать управляющий модуль 51. Управляющий модуль 51 может принимать запрос регистрации для регистрации горячей клавиши, инициированный одной или более копиями приложения; определять, занята ли приложением другого типа горячая клавиша, которая должна регистрироваться копией приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши; когда горячая клавиша не занята, регистрировать горячую клавишу для копии приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши; когда горячая клавиша занята, подсказать копии приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, об отказе в регистрации горячей клавиши.
В соответствии с примером настоящего раскрытия, после подсказки копии приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, об отказе в регистрации горячей клавиши управляющий модуль 51 может подсказать копии приложения, которая может первой инициировать запрос регистрации для регистрации горячей клавиши, изменить горячую клавишу и перерегистрировать измененную горячую клавишу.
В соответствии с примером настоящего раскрытия, когда копия приложения, которая регистрирует горячую клавишу, прекращает работу, копия приложения, которая регистрирует горячую клавишу, может поочередно послать сообщение горячей клавиши копиям приложения, которые не зарегистрировали горячую клавишу и имеют тот же тип, что и копия приложения, которая регистрирует горячую клавишу. В этом случае, копия приложения, которая первой принимает сообщение горячей клавиши, может повторно выполнить процесс регистрации горячей клавиши, как показано на фиг. 2.
В соответствии с примером настоящего раскрытия, модуль 501 регистрации может дополнительно предварительно определить порядок перерегистрации горячей клавиши; когда копия приложения, которая регистрирует горячую клавишу, закончила работу, послать в соответствии с порядком перерегистрации рабочей клавиши сообщение регистрации горячей клавиши к копии приложения, следующей по порядку копии приложения, которая регистрирует горячую клавишу, так что следующая по порядку копия приложения может зарегистрировать горячую клавишу.
В этом случае порядок перерегистрации горячих клавиш может содержать:
порядок моментов запуска множества копий приложения; и/или
хронологический порядок множества копий приложения для приема сообщения регистрации горячей клавиши.
В соответствии с примером настоящего раскрытия, копия приложения, следующая по порядку из числа копий приложения, которая регистрирует горячую клавишу, может содержать:
модуль регистрации для приема сообщения горячей клавиши, когда существует сообщение горячей клавиши;
модуль распространения для распространения сообщения горячей клавиши копии приложения, которая не регистрирует горячую клавишу; и
процессорный модуль 503 для определения, существует ли копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши; в ответ на определение, что существует копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши, принимает информацию обратной связи об обработке сообщения горячей клавиши, посланную в ответ от копии приложения, которая не регистрирует горячую клавишу; в противном случае, в ответ на определение, что не существует копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши, обрабатывает сообщение горячей клавиши.
Функции регистрационного модуля, модуля распространения и процессорного модуля, содержащиеся в копии приложения, следующей по порядку после копии приложения, которая регистрирует горячую клавишу, могут быть такими же, как функции модуля 501 регистрации, модуля 502 распространения и процессорного модуля 503, содержащиеся в копии приложения, которая регистрирует горячую клавишу в системе, показанной на фиг. 5.
Можно видеть, что когда используется техническое решение совместного использования горячей клавиши путем перекрестного процесса между копиями приложения одного и того же типа или между приложениями разного типа, конфликт горячей клавиши между приложениями может быть разрешен, ресурсы горячей клавиши могут использоваться совместно и действия пользователя могут быть дополнительно оптимизированы.
Здесь далее примеры настоящего раскрытия могут быть описаны с дополнительными подробностями, принимая в качестве примера приложение ЕМ. Для приложения IM решение совместного использования горячей клавиши посредством перекрестного процесса, представленное примерами настоящего раскрытия, может быть достигнуто посредством удаленного вызова модели компонентных объектов (СОМ). Конкретно, компонент IM может быть создан первым и набор интерфейсов (которые могут содержать интерфейс IMAPI и интерфейс IMMainCreator) могут быть реализованы основываясь на спецификации СОМ. Компонент IM и набор интерфейсов могут быть зарегистрированы в системе. Среди них интерфейс IMAPI может обеспечивать способ запроса, зарегистрирована ли горячая клавиша, и способ реакции на сообщение горячей клавиши. Интерфейс IMMainCreator может обеспечивать способ прохождения всех копий приложения IM и может давать ответы всех интерфейсов IMAPI запросчику.
Когда копия приложения IM имеет отказ при регистрации горячей клавиши, копия приложения IM может получить от системы компонент IM и интерфейс IMMainCreator компонента IM. Интерфейс IMMainCreator может получить посредством способа прохождения всех копий приложения ЕМ интерфейсы IMAPI для всех копий приложения IM, работающих в настоящее время, и может поочередно вызывать интерфейсы EMAPI, чтобы запрашивать, зарегистрирована ли горячая клавиша. В этом случае, если интерфейс IMAPI отвечает сообщением, указывающим, что горячая клавиша зарегистрирована, дальнейшие запросы могут быть прерваны и процесс может быть закончен. Если все интерфейсы EMAPI могут ответить сообщением, что горячая клавиша не зарегистрирована, может быть выведена подсказка, чтобы информировать пользователя (эта операция может быть специально определена специальным продуктом) и процесс может быть закончен.
Когда копия приложения IM принимает сообщение горячей клавиши системы, копия приложения IM может получить от системы компонент IM и интерфейс IMMainCreator компонента IM. Интерфейс IMMainCreator может получить посредством способа прохождения всех копий приложения IM интерфейсы ΓΜΑΡΙ для всех копий приложения IM, работающих в настоящее время, и может поочередно вызывать интерфейсы IMAPI, чтобы получить ответ на сообщение горячей клавиши. В этом случае, если интерфейс IΜΑΡΙ отвечает сообщением, указывающим, что сообщение горячей клавиши обработано, дальнейшие запросы могут быть прерваны и процесс может быть закончен. Если все интерфейсы IMAP1 могут вернуть ответ с сообщением, что сообщение горячей клавиши не обработано, копия приложения IM, которая принимает системное сообщение горячей клавиши, может обрабатывать сообщение горячей клавиши и может закончить процесс.
Приведенный выше пример может описывать, как достигнуть совместного разделения горячей клавиши в перекрестном процессе посредством удаленного вызова СОМ. Примеры, приведенные в настоящем раскрытии, могут не ограничиваться этим типовым примером. Совместное использование горячей клавиши в перекрестном процессе может также быть достигнуто различными путями, такими как совместно используемая память или анонимный канал и т.д.
Аналогично, хотя приведенные выше примеры настоящего раскрытия могут быть описаны, принимая в качестве примера приложение IM, примеры настоящего раскрытия не могут ограничиваться приложением IM. Примеры в настоящем раскрытии могут также применяться к любому другому соответствующему сценарию.
При использовании примеров, соответствующих настоящему раскрытию, вышеупомянутые три копии AIM, BIM и CIM приложения могут продолжать использоваться в качестве примера.
В случае 1, который использует примеры из настоящего раскрытия, AIM, BIM и CIM могут работать одновременно и ATM может успешно регистрировать горячую клавишу для извлечения сообщения. В этом случае сообщение посылается к BIM. Пользователь может нажать Ctrl+Atl+Z, чтобы запустить горячую клавишу для извлечения сообщения, и AIM может принять сообщение горячей клавиши. После приема горячей клавиши ATM может направить сообщение горячей клавиши к BIM (альтернативно, AIM может направить сообщение горячей клавиши к CIM; CIM может определить, что CIM не нуждается в обработке горячей клавиши и может ответить AIM сообщением, указывающим, что сообщение горячей клавиши не обрабатывается; AIM может принять сообщение, что горячая клавиша не обрабатывается, и может направить сообщение горячей клавиши к BIM). BIM может принять сообщение горячей клавиши, определить, что существует новое сообщение, развернуть новое сообщение и может ответить сообщением AIM, указывающим, что сообщение горячей клавиши обрабатывается. Это решение удовлетворяет ожиданиям пользователя и улучшает практику пользователя.
В случае 2, который использует примеры из настоящего раскрытия, AIM, BIM и CIM могут работать одновременно AIM может успешно регистрировать горячую клавишу для извлечения сообщения и затем закончить работу. Когда AIM заканчивает работу, AIM может послать сообщение регистрации горячей клавиши (которое может также упоминаться как сообщение освобождения горячей клавиши) к BIM и CIM, соответственно, так чтобы уведомить BIM и СЕМ о перерегистрации горячей клавиши. BIM и CIM могут принять сообщение регистрации горячей клавиши и могут немедленно зарегистрировать горячую клавишу. Однако, в соответствии с установленным порядком, копия приложения IM, которая может первой зарегистрировать горячую клавишу, может успешно зарегистрировать горячую клавишу. В этом случае, полагая, что BIM успешно регистрирует горячую клавишу, BIM, по существу, занимает место AIM. Когда пользователь нажимает Ctrl+Atl+Z, чтобы запустить горячую клавишу для извлечения сообщения, BIM может принимать сообщение горячей клавиши и может распространять сообщение горячей клавиши. Это решение удовлетворяет ожиданиям пользователя и улучшает практику пользователя.
Хотя представленные выше примеры настоящего раскрытия могут быть описаны принимая в качестве примера приложение IM, специалисты в данной области техники должны признать, что список может служить для иллюстративных целей и не может быть предназначен ограничивать объем защиты настоящего раскрытия.
Как можно видеть из приведенного выше описания, соответствующего примерам настоящего раскрытия, когда существует сообщение горячей клавиши, копия приложения, которая регистрирует горячую клавишу, может принимать сообщение горячей клавиши, распространять сообщение горячей клавиши копии приложения, которая не регистрирует горячую клавишу, и может определять, существует ли копия приложения, которая не регистрирует горячую клавишу и которая должна обрабатывать сообщение горячей клавиши. В ответ на определение, что существует копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши, копия приложения, которая не регистрирует горячую клавишу, может обрабатывать сообщение горячей клавиши и копия приложения, которая регистрирует горячую клавишу, может в ответ принимать информацию обратной связи об обработке сообщения горячей клавиши от копии приложения, которая не регистрирует горячую клавишу. В противном случае, в ответ на определение, что не существует копия приложения, которая не регистрирует горячую клавишу и должна обрабатывать сообщение горячей клавиши, копия приложения, которая регистрирует горячую клавишу, может обрабатывать сообщение горячей клавиши. Как можно видеть, когда используются примеры настоящего раскрытия, после приема сообщения горячей клавиши копия приложения, которая регистрирует горячую клавишу, может сначала послать сообщение горячей клавиши копии приложения, которая не регистрирует горячую клавишу, и приложение, которое регистрирует горячую клавишу, может обрабатывать сообщение горячей клавиши, когда копия приложения, которая не регистрирует горячую клавишу, может не нуждаться в обработке сообщения горячей клавиши. Таким способом все копии приложения (как копия приложения, которая регистрирует горячую клавишу, так и копия приложения, которая не регистрирует горячую клавишу) могут иметь возможность обрабатывать сообщение горячей клавиши. По существу, конфликт между приложениями (между приложениями с различными типами приложений или между различными копиями приложения, принадлежащими к приложениям одного и того же типа) может быть разрешен, так что ресурсы горячих клавиш могут использоваться совместно и точность реакции на горячую клавишу может быть повышена.
Дополнительно, когда используются примеры настоящего раскрытия, между копиями приложения, когда копия приложения, которая в настоящий момент регистрирует горячую клавишу, заканчивает работу, копия приложения, которая в настоящее время регистрирует горячую клавишу, может уведомить следующую копию приложения, чтобы зарегистрировать горячую клавишу, так чтобы могла быть гарантирована транзитивность горячей клавиши, горячая клавиша могла использоваться совместно и точность реакции на горячую клавишу могла быть повышена.
Выше приведены несколько примеров настоящего раскрытия и они не используются для ограничения объема защиты настоящего раскрытия. Любые модификации, эквиваленты, усовершенствования и т.д., сделанные согласно сущности и принципам настоящего раскрытия, должны содержаться в объеме защиты настоящего раскрытия.