Skip to content

Jak zmienić przypisanie klucza pakietu Office na klawiaturze?

14 de sierpień de 2021
img 5db0c2499120d

Klucz pakietu Office to nowy klucz, który znajdziesz na klawiaturach firmy Microsoft. Pozwala szybko uruchamiać aplikacje takie jak Word, ale możesz je zmienić za pomocą AutoHotkey, aby działał jako dodatkowy klawisz modyfikujący lub całkowicie wyłączyć skróty aplikacji.

Co to jest klucz pakietu Office?

Ten klawisz znajdziesz na nowych klawiaturach Microsoft wydanych po 15 października. Być może słyszałeś również o dedykowanym klawiszu emoji dodanym wraz z nim; oba klawisze znajdują się w miejscu, w którym znajdował się prawy klawisz Windows i klawisz menu, pomiędzy prawym klawiszem Alt i prawym klawiszem Control:

Kluczowa lokalizacja biura obok lewego alt

Po wyjęciu z pudełka klawisz Office otwiera aplikację Office i ma kilka skrótów klawiszowych do otwierania określonych aplikacji Microsoft. Istnieją podstawowe skróty klawiszowe, takie jak Office + W i Office + X do otwierania programów Word i Excel, ale także bardziej niejasne — Office + L, Office + T i Office + Y otwierają LinkedIn, Microsoft Teams i Yammer.

Klawisz pakietu Office wysyła Shift+Control+Alt+Windows

Jest to wygodne, ale możesz pomyśleć, że jest to nowy klucz stworzony przez Microsoft, podobny do klucza Windows. Ale Microsoft dba o wsteczną kompatybilność, a wymyślenie zupełnie nowego klucza byłoby kłopotliwe, więc poszedł na skróty.


Być może słyszałeś o kluczu „hiper”. Hyper był starym kluczem modyfikującym z dawnych czasów i był używany wKlawiatura kosmicznego kadetadla maszyn Lisp. To praktycznie skamielina. Nie znajdziesz jej na żadnej nowoczesnej klawiaturze i nie jest obsługiwana w żadnym obecnym systemie operacyjnym. Ale nazwa jest fajna i utknęła jako określenie niejasnego klawisza modyfikującego, który nie jest używany przez żadne aplikacje.

Obecnie klawisz Hyper jest emulowany kombinacją każdego klawisza modyfikującego. W systemie macOS to mapuje do Shift+Control+Option+Command. W systemie Windows klawisz Hyper jest emulowany za pomocą kombinacji Shift+Control+Alt+Windows.

Myśl stojąca za tym mapowaniem jest taka, że ​​żaden projektant UX nie będzie na tyle szalony, aby zaprojektować aplikację, która wymaga od użytkownika naciśnięcia wszystkich czterech klawiszy modyfikujących jednocześnie. Zasadniczo daje to całą klawiaturę z klawiszami modyfikującymi, które możesz powiązać w dowolny sposób, co jest świetne.

A przynajmniej tak było – w aktualizacji systemu Windows 10 z maja 2019 r. Microsoft dodał wstępną obsługę systemu operacyjnego dla klucza pakietu Office, zanim został on udostępniony publicznie. Zgadnij, do czego mapuje się klucz pakietu Office?

Klawisz Office faktycznie naciska wszystkie cztery klawisze modyfikujące

To jest hiper. Zamiast implementować nowy klucz, klucz pakietu Office działa jak wszystkie cztery klawisze modyfikujące. Klucz emoji nie jest tak naprawdę kluczem; mapuje do skrótu Office + Space, który możesz nacisnąć, aby otworzyć przeglądarkę emoji. (Możesz nacisnąć Windows+. lub Windows+;, aby otworzyć również panel emoji.)

Posiadanie dedykowanego klawisza Hyper na klawiaturze byłoby świetne. Większość ludzi ponownie wykorzystuje Caps Lock, ale klucz Office zastąpi bezużyteczny prawy klawisz Windows i zamieni go w coś użytecznego. Niestety, spośród 27 dostępnych klawiszy liter i spacji, 10 z nich jest używanych przez skróty klawiszowe pakietu Office, z możliwością dodania przez Microsoft kolejnych w przyszłości. Obecnie nie ma wbudowanego sposobu wyłączenia tych skrótów. W Ustawieniach nie ma opcji, nie ma zmian w rejestrze ani zasad grupy.

Naturalnie fakt, że nie można już nacisnąć Hyper+Y bez przejścia na stronę marketingową Yammera, sprawił, że użytkownicy Hyper key byli dość zdenerwowani. Istnieje jednak kilka poprawek, które możesz wykonać samodzielnie, aby zmienić mapowanie klawisza lub całkowicie wyłączyć skrót. Zanim zaczniemy korzystać z AutoHotkey, jest jedna zmiana rejestru, którą musisz włączyć, uruchamiając następujące polecenie w PowerShell. Kliknij prawym przyciskiem myszy przycisk Start i kliknij „PowerShell”, aby go otworzyć:

REG ADD HKCUSoftwareClassesms-officeappShellOpenCommand /t REG_SZ /d rundll32


Zwykle samo naciśnięcie klawisza pakietu Office powoduje otwarcie aplikacji pakietu Office. Zmienia to lokalizację, która jest otwierana, uniemożliwiając uruchomienie aplikacji po każdym naciśnięciu klawisza. Niestety, w rejestrze nie ma nic podobnego, co pozwalałoby na wyłączenie skrótów klawiszowych specyficznych dla aplikacji, więc musisz je ponownie zmapować ręcznie. Jeśli znajdziesz sposób na wyłączenie skrótów specyficznych dla aplikacji z rejestru, daj nam znać w komentarzach, a zaktualizujemy ten artykuł.

Jak zmapować klucz pakietu Office za pomocą AutoHotKey

AutoHotkey to program do przypisywania klawiszy klawiatury do określonych czynności. Może zrobić o wiele więcej, ale w tym przypadku naprawdę chcemy go użyć tylko do usunięcia klawisza Windows z kombinacji klawiszy pakietu Office.

AutoHotkey instaluje zaczep klawiatury niskiego poziomu, który przechwytuje zdarzenia klawiatury, zanim dotrze do nich reszta systemu. Jeśli pasuje do skonfigurowanego klawisza skrótu, zdarzenie jest przechwytywane przez AutoHotkey. AutoHotkey może następnie wysyłać własne zmodyfikowane zdarzenia klawiatury. To nie pozwala na wysyłanie Shift+Control+Alt+Win+W klawisz skrótu, ponieważ nadal będzie uruchamiał skrót Word. Możesz jednak wysłać Shift+Control+Alt+W. To wciąż jest wystarczająco nieporęczne, aby uznać je za klawisz Hyper, którego normalnie nie naciskasz, chociaż będziesz musiał dwukrotnie sprawdzić, czy Twoje aplikacje go nie używają.

Poniższy skrypt zmieni mapowanie Office+W naShift+Control+Alt+W. Po prostu zapisz tekst jako skrypt AutoHotKey i uruchom go:

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#UseHook
#InstallKeybdHook
#SingleInstance force
SendMode Input

#^!+W::
Send ^!+W
return

Sekwencja znaków „#^!+” jest skrótem AutoHotkey odpowiednio dla Windows, Control, Alt i Shift. Ten skrypt pasuje do Office+W i odsyła poprawioną sekwencję, co rozwiązuje problem otwierania Worda.

Oczywiście będziesz musiał również zmienić inne klawisze, T, Y, O, P, D, L, X, N i spację, więc pełny skrypt jest znacznie dłuższy:

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#UseHook
#InstallKeybdHook
#SingleInstance force
SendMode Input

#^!+W::
Send ^!+W
return

#^!+T::
Send ^!+T
return

#^!+Y::
Send ^!+Y
return

#^!+O::
Send ^!+O
return

#^!+P::
Send ^!+P
return

#^!+D::
Send ^!+D
return

#^!+L::
Send ^!+L
return

#^!+X::
Send ^!+X
return

#^!+N::
Send ^!+N
return

#^!+Space::
Send ^!+Space
return


Możesz użyć poprawionych skrótów klawiszowych dla każdego z dziesięciu klawiszy używanych przez klawisz pakietu Office, ale będziesz mógł użyć pełnego klawisza Hyper dla każdego nieużywanego klawisza. Możesz również mapować te skróty klawiszowe do funkcji AHK, dzięki czemu masz całkowitą swobodę nad nimi, pod warunkiem, że poradzisz sobie z nimi w jakiś sposób, aby aplikacja Office się nie otworzyła.

To rozwiązanie jest prawdopodobnie wystarczająco dobre dla większości ludzi, dopóki Microsoft nie zdecyduje się na wyłączenie tego (jeśli w ogóle). Ale jeśli naprawdę chcesz całkowicie wyłączyć skróty aplikacji Office, istnieje hacky rozwiązanie.

Jak całkowicie usunąć kluczowe integracje pakietu Office?

Ostrzeżenie: Poniższe jest trochę brzydkim hackiem. To rozwiązanie jest tak naprawdę tylko dla zaawansowanych użytkowników, więc jeśli nie wiesz, co robisz, trzymaj się rozwiązania AutoHotkey.

Ale jeśli chcesz użyć kombinacji klawiszy Shift-Control-Alt-Win jako klawisza Hyper i chcesz, aby Microsoft nigdy nie dodawał skrótów Office, istnieje rozwiązanie, które całkowicie rozwiązuje problem.

W systemie Windows ogólnosystemowe skróty klawiszowe muszą być zarejestrowane w systemie operacyjnym za pomocą ZarejestrujHotKeyfunkcja systemu. Pod maską skróty klawiszowe pakietu Office są rejestrowane w ten sposób przez Eksploratora, proces odpowiedzialny za pulpit, pasek zadań i Eksplorator plików. Jest to integralna część systemu Windows, więc warto tutaj zarejestrować skróty klawiszowe; skróty klawiszowe utworzone za pomocą RegisterHotKey zostaną automatycznie wyrejestrowane po zamknięciu procesu, który je zarejestrował. Ponieważ Eksplorator jest zawsze otwarty, skróty klawiszowe będą trwałe.


Naszą pierwszą myślą jest ominięcie skrótów klawiszowych pakietu Office, rejestrując własne. Ale jeśli stworzysz program, który uruchamia RegisterHotKey, przekonasz się, że to nie zadziała. Nie możesz zarejestrować skrótów klawiszowych, które zostały już zarejestrowane przez inny program.

Jednak po zamknięciu programów automatycznie wyrejestrują swoje skróty klawiszowe. Oznacza to, że jeśli możesz zamknąć program, który zarejestrował skróty klawiszowe, możesz je wyłączyć. Niestety zamknięcie Eksploratora nie jest zbyt dobrym rozwiązaniem, ponieważ utknąłbyś bez użytecznego komputera. A jeśli ponownie uruchomisz Eksploratora, ponownie zarejestruje on skróty klawiszowe po uruchomieniu kopii zapasowej.

To rozwiązanie działa więc tak: program naprawiający klawisze pakietu Office zamyka Eksploratora, co zwalnia skróty klawiszowe do zastąpienia. Następnie rejestruje każdy klawisz skrótu powiązany z klawiszem pakietu Office, który chcemy wyłączyć, i ponownie uruchamia Eksploratora. Kiedy Eksplorator uruchamia się, próbuje zarejestrować klawisze skrótu Office jak zwykle, ale jest blokowany, ponieważ nasz program już je zarejestrował. Próbuje to zrobić tylko podczas uruchamiania, więc wszystko, co musimy zrobić, to poczekać kilka sekund, a następnie wyjść z program. Powoduje to wyrejestrowanie skrótów klawiszowych w procesie, co pozwala na ich użycie przez inne programy.

To rozwiązanie działa doskonale i pozwala rzeczywistemu klawiszowi Office lub emulowanemu klawiszowi Hyper używać każdego skrótu na klawiaturze bez ryzyka otwierania losowych aplikacji Microsoft. Całkowicie odcina skróty klawiszowe pakietu Office. Eksplorator nie otrzymuje nawet wiadomości po naciśnięciu tych kombinacji klawiszy.

Jedynym minusem jest to, że ponieważ restartujemy Explorera, kiedy ten program działa przy starcie, przez ułamek sekundy miga na czarno pulpit przed ponownym uruchomieniem. Nie jest to zbyt inwazyjne, ale wystarczy zauważyć. Jeśli Twój komputer zajmie sekundę, aby załadować aplikacje startowe, zamknie wszystkie otwarte okna Eksploratora plików. Plusem jest to, że możesz spać spokojnie, wiedząc, że prowadzisz 1:0 w walce z działem marketingu Microsoftu o kontrolę nad klawiaturą.

W każdym razie skrypt jest stosunkowo krótkim fragmentem C++:

#include <windows.h>
#include <stdio.h>
#include <thread>
#include <chrono>
#include <iostream>

int main(int argc, wchar_t* argv[])
{
//Build Array Of Keys To Unregister
//These map to W, T, Y, O, P, D, L, X, N, and Space, respectively.
UINT offendingKeys[10] = { 0x57, 0x54, 0x59, 0x4F, 0x50, 0x44, 0x4C, 0x58, 0x4E, 0x20 };

//Kill Explorer
system(„taskkill /IM explorer.exe /F”);

//Register hotkey
for (int i = 0; i < 10; i++) {
RegisterHotKey(NULL, i, 0x1 + 0x2 + 0x4 + 0x8 | MOD_NOREPEAT, offendingKeys[i]);
}

//Restart Explorer
system(„start C:/Windows/explorer.exe”);

/* Sleep for a few seconds to make sure Explorer has time to
attempt to register the Office hotkeys, and get blocked by
our hotkeys */
std::this_thread::sleep_for(std::chrono::milliseconds(4000));

//deregister hotkeys by ID
for (int i = 0; i < 10; i++) {
UnregisterHotKey(NULL, i);
}

return 1;
}

Możesz go również znaleźć tutaj na GitHub. Będziesz musiał skompiluj to sam, ale tak naprawdę nie powinieneś uruchamiać losowych plików wykonywalnych, które znajdziesz w Internecie. Gdy już masz go jako plik binarny, umieść go w C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup więc będzie działać po uruchomieniu komputera.

Pliki wykonywalne umieszczone w folderze startowym trochę się otwierają, więc program prawdopodobnie uruchomi się 5-10 sekund po wyświetleniu pulpitu. Zamknie wszystkie otwarte okna Eksploratora plików, ale nie zamknie innych aplikacji, takich jak Chrome.


Jeśli ktoś, kto to czyta, zna sposób, aby uniemożliwić Eksploratorowi rejestrację skrótów klawiszowych bez ponownego uruchamiania – lub jeśli w jakiś sposób można wyrejestrować skróty utworzone przez inny wątek – daj nam znać w komentarzach.

Czy ten post był pomocny?