Я пытаюсь создать пункт меню, который по сути похож на глобальный буфер обмена. Пользователь сможет щелкнуть правой кнопкой мыши, а затем навести курсор мыши на элемент меню, а затем выбрать из пунктов подменю варианты, которые он хочет вставить, независимо от того, в каком приложении он находится (если это невозможно, я готов принять его доступным в некоторых приложениях).

Во-первых, в Windows я вижу, как много программ, таких как Антивирусы, получают пункт меню правой кнопкой мыши после их установки:

Как видно выше, VeriFace, Sandboxie и McAfee смогли добавить пункт меню. Как они добавляют это?

Во-вторых, если то, что я пытаюсь сделать, является возможным, то какие ресурсы я могу эффективно подключить к буферу и буферу обмена Windows и иметь к ним доступ везде?

В мобильных ОС Android они имеют глобальный буфер обмена, в котором, если вы нажмете кнопку буфера обмена на клавиатуре, откроется буфер обмена, независимо от того, какое приложение или процесс используется в данный момент на экране:

Я понимаю, что в Windows иногда контекстное меню ограничено и определяется процессом, в котором оно находится. Например, когда вы щелкаете правой кнопкой мыши в Chrome, меню правой кнопки мыши отличается от того, когда вы находитесь на главном экране рабочего стола или в других процессах.

В Microsoft Word есть буфер обмена, в котором сохраняются все скопированные фотографии и тексты, но он либо сохраняется, либо уничтожается, как только процесс завершается, и не может использоваться вне процесса.

Два приведенных выше абзаца наводят меня на мысль, что то, что я пытаюсь сделать, невозможно, но я очень мало знаю о доступе к материалам ядра.

Если мои намерения недостаточно ясны, я могу создать демонстрационное меню, щелкнув правой кнопкой мыши, которое показывает, как пользователь будет его использовать. Подобно тому, как в McAfee есть пункт меню, мое приложение будет иметь элемент меню по умолчанию, и этот элемент меню будет содержать элементы подменю, и я мог бы щелкнуть один из них, чтобы вставить в текущий процесс, на котором мой экран включен.

0