Wyłącz (usuń powiązanie) domyślne skróty klawiszowe Win + Arrows, aby mogły być używane w innych aplikacjach

9

W systemie Windows 7 chciałbym odłączyć domyślne Zdobyć + W górę / Na dół / Lewo / Dobrze aby można je było bezpośrednio powiązać * w innych aplikacjach. Jak można to zrobić?

Te klawisze skrótu mogą być łatwo wyłączone przez:

  1. Zamierzam Centrum ułatwień dostępu ,
  2. wybór Ułatw korzystanie z klawiatury , i
  3. Kontrola Zapobiegaj automatycznemu rozmieszczaniu okien po przeniesieniu na krawędź ekranu :

    Setting

Ale nawet przy użyciu tego ustawienia i wyłączeniu klawiszy skrótu (nic nie robią) klawisze skrótu nadal nie można związać w innych aplikacjach.


Próbowałem następujących sposobów i żadna z nich nie działa :

  1. Dokonanie powyższej zmiany Centrum ułatwień dostępu
  2. Włączanie zasad Wyłącz skróty klawiszowe Windows + X , który jest taki sam jak ustawienie: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoWinKeys do 1. (Przy tym ustawieniu same klawisze skrótu nadal działają jak zwykle).
  3. Wyłączanie klucza Windows zgodnie z opisem w KB216893 przez ustawienie System\CurrentControlSet\Control\Keyboard Layout\Scancode Map. Powoduje to całkowite wyłączenie klucza systemu Windows, dzięki czemu nie można go powiązać ani użyć w dowolnym miejscu.
  4. Włączanie zasad Wyłącz Centrum mobilności systemu Windows


Niektóre gogli ujawniły ten post :

kombinacje klawiszy Win + Arrow są jednym z kilku (razem z Win + P,   Win + U i Win + L), które są w jakiś sposób „super zarejestrowane / zastrzeżone”   Windows 7. Próbowałem wyśledzić, gdzie i kiedy się pojawią   zarezerwowane, ale jak dotąd były puste. Próbowałem też różnych   sztuczki, aby je zarezerwować, zanim Windows ma szansę, ale jak dotąd   nic nie działa. Te kombinacje klawiszy są po prostu zablokowane w systemie Windows na głębokości,   wewnętrzny poziom bez względu na to, czy faktycznie z nich korzystasz.

Ten facet nie znalazł sposobu, ale może niektórzy z was wiedzą więcej. Może jest jakiś dll / exe, który możemy łatwo załatać. ;-)

*) Chciałbym uniknąć używania innych narzędzi, takich jak AutoHotKey aby podłączyć skrót klawiszowy i zmapować go na coś innego, co może być powiązane w zwykłych aplikacjach.

Qtax
źródło
Czy próbowałeś zmodyfikować HKLM Software Microsoft Windows CurrentVersion Zasady Explorer NoWinKeys? Twoje pytanie mówi, że zmieniłeś to w HKCU. Utwórz klucz, jeśli go nie ma, uruchom ponownie i sprawdź, czy ma jakiś wpływ.
Zac B

Odpowiedzi:

7

Ten facet nie znalazł sposobu, ale może niektórzy z was wiedzą więcej.

Raczej nie. Próbowałem znaleźć sposób uniemożliwić Windows Vista + łamanie skrótów klawiszowych odkąd wyszli.

Faktem jest, że w przeciwieństwie do większości skrótów klawiszowych Windows, które można wyłączyć za pomocą NoWinKeys ustawienie, istnieje kilka, które nie są zarejestrowane w Eksploratorze Windows. Zamiast tego wyższy (niższy?) Poziom CSRSS rejestruje kilka skrótów klawiszowych na początku procesu rozruchu, więc nie tylko nie można ich zarejestrować, ale nie ma ustawień, aby ich nie używać. Są to klucze specjalnie obsługiwane:

Win + P
Win + L
Win + U
Win + G
Win + X
Ctrl + Shift + Esc
Ctrl + Alt + Del

one mogą być nadpisywane przez niektóre programy, takie jak AutoHotkey, ale nie w sposób, którego szukasz (umożliwiając programom ich globalną rejestrację).

Może jest jakiś dll / exe, który możemy łatwo załatać. ;-)

To również jest mało prawdopodobne. Wymagałoby to włamania się do podstawowych komponentów systemu Windows, a nawet jeśli lokalizacja, w której zarejestrowano skróty klawiszowe, została znaleziona i załatana, oznaczałoby to, że musiałbyś uniemożliwić oprogramowaniu zabezpieczającemu przeglądanie łatki jako infekcji i upewnić się, że po każdym zastosowaniu poprawki Aktualizacja systemu Windows.


Możesz spróbować Windows Hotkey Explorer który używa haków Windows do określenia źródła globalnych skrótów klawiszowych. Niestety pokazuje tylko te specjalne kombinacje jako zarezerwowane przez System, co oznacza, że ​​są ładowane przez rdzeń Windows. Jeszcze ciekawsze jest to, że WHE mówi to samo dla tych kluczy nawet w Windows XP, gdzie są nie używany. Oznacza to, że w rzeczywistości nie są one odczytywane tak jak inne, a zamiast kodowane na stałe, co niestety oznacza, że ​​nawet z niskopoziomowymi hakami Windows, WHE nie może uzyskać do nich bezpośredniego dostępu. Sprawia to, że jest szczególnie mało prawdopodobne, aby można było wykonać jakąkolwiek łatwą łatkę, sterownik itp., Aby powstrzymać ich przed związaniem.


Niestety, najlepszym, najskuteczniejszym rozwiązaniem byłoby odejście Opinie Microsoft i mam nadzieję, że zmienią to w przyszłej aktualizacji, ale rzadko kiedy to działa.

W moim przypadku po prostu poddałem się i zmieniłem moje klawisze XMPlay, aby zamiast nich używać klawiszy strzałek na klawiaturze numerycznej.

Synetech
źródło
Nieznacznie powiązane: znalazłem ten wątek „RegisterHotkey - list?” który ma pewne informacje, które są interesujące i może może pomóc znaleźć miejsce, w którym jest ustawiony skrót klawiszowy. Jeśli dobrze rozumiem na Vista (i zakładam Win7), istnieje _gphkHashTable funkcja jądra, której możesz użyć, aby uzyskać listę zarejestrowanych skrótów klawiszowych. Googluje tylko dla niektórych chińskich witryn - sądzę, że tylko niektórzy faceci w Chinach lubią się tym bawić. ;-)
Qtax
To jest możliwe, ale trzeba zainstalować hak, aby uzyskać informacje, a następnie napisać i zainstalować sterownik wczytujący wcześnie w procesie rozruchu, aby załatać kod w pamięci, aby uniknąć łatania pliku na dysku.
Synetech
0

Istnieją co najmniej dwa narzędzia do tego.

Pierwszy to Kreator układu klawiatury Microsoft

enter image description here

Drugi to KeyTweak

enter image description here

Aby uzyskać więcej informacji na temat powiązanego pytania: Zaprogramuj ponowne zaprogramowanie mojej klawiatury?

climenole
źródło
1
W jaki sposób ponowne mapowanie klawiszy pomaga rozłączyć te klawisze? Jak to odpowiada na pytanie?
Qtax
Jedyne, co możesz zrobić z tym „rozwiązaniem”, to zmienić klawiaturę, aby nie miała klucza Windows, zastępując ją innym kodem skanowania, a następnie zmapować ten klucz. NIE jest dobrym rozwiązaniem, ponieważ wszystko, co próbuje użyć klucza Win do czegokolwiek, byłoby bezużyteczne.
Michael Kohne
Tylko zgaduję tutaj, ale teoretycznie możesz stworzyć fałszywy WinKey, zarejestrować swój program obsługi, aby uzyskać wszystkie powiązane zdarzenia, i po prostu powtórzyć zdarzenia za pomocą prawdziwego klucza Windows. To zapewni ci sposób na dostosowanie dowolnego mapowania związanego z WinKey, jak chcesz ... Chociaż nie wiem, jeśli to możliwe ...
Vajk Hermecz
0

AutoHotkey może przesłonić i zrobić wszystko, co chcesz za pomocą klawiszy skrótu systemu Windows.
Zobacz tę dokumentację: Zastępowanie lub wyłączanie skrótów klawiszowych .

AutoHotkey może również wykonywać swoje działania warunkowo w zależności od bieżącego okna lub procesu, w efekcie inaczej przypisuje się klucze do różnych procesów. Zobacz na przykład Aktywowanie i manipulowanie oknami .

Aby uzyskać więcej informacji o AutoHotkey, zobacz:

Samouczek i przegląd
Dokumentacja AutoHotkey

harrymc
źródło
3
Mówili wyraźnie, że nie chcą korzystać z AutoHotkey. Jeśli nie wiesz, w jaki sposób AHK pozwala innym programom na wiązanie tych kluczy, to nie widzę, jak to odnosi się do pytania.
Synetech
Możesz podłączyć skróty klawiszowe w AutoHotkey, aby nic nie zrobiły lub wykonały jakąś akcję w AHK, ale to nie pozwala na powiązanie tych skrótów klawiszowych w innej aplikacji, co było pytaniem. (Dlatego w pytaniu stwierdziłem, że odpowiedzi AHK nie są zbyt interesujące).
Qtax
@ Qtax: Powiązanie klucza okna / procesu AutoHotkey wydawało mi się rozwiązaniem. Dlaczego to nie działa dla ciebie?
harrymc
1
@harrymc, ponieważ, na przykład, chciałby używać Winampa Win+Left aby przewinąć, nie ma możliwości, aby AutoHotkey to zrobił. Przypuszczam, że uda ci się to zrobić, powiedzmy, że Winamp użyje innego klucza Win+A aby przewinąć do tyłu, a następnie napisać skrypt AHK, który wykrywa naciśnięcie tego klawisza, gdy okno Winampa jest aktywne, a następnie wysłać Winampa Win+A, ale to nie ma sensu, ponieważ celem globalnych skrótów klawiszowych jest sprawienie, by działały niezależnie od tego, które okno jest aktywne.
Synetech
1
@Qtax: Nie znam lepszego rozwiązania. Przepraszam, jeśli zakładałem brak wiedzy na temat AHK z twojej strony.
harrymc
0

Możesz dodać następujący rejestr [WIN + R - & gt; regedit.exe ]:

HKEY_CURRENT_USER Oprogramowanie Microsoft Windows CurrentVersion Zasady System  + prawa strona, utwórz nowy DWORD 32-bitowy  + Kliknij dwukrotnie nowo utworzony wpis DisableLockWorkstation i zmień jego wartość z 0 (zero) na 1 (jeden).

Nr ref. http://www.intowindows.com/how-to-disable-windowsl-shortcut-key-in-windows-78-1/

PS. Nie ma potrzeby ponownego uruchamiania xD

aemonge
źródło
Artykuł i ustawienie mówią o skrócie klawiszowym Win + L. Czy to rozwiąże klawisze strzałek wygranych +?
Qtax
Nie, to tylko rozwiąże wygraną + L. Ale widząc, że jest to możliwe, założę się, że istnieje sposób na funkcje strzałek.
aemonge