2012-12-18 21 views
11

Próbuję użyć Autohotkey do symulacji elementów klawiatury Mac na klawiaturze komputera (Windows). Moja pamięć mięśniowa sięga po klawisz Command w celu wykonania prostych zadań, takich jak kopiowanie i wklejanie, dlatego chciałbym zmienić kombinacje klawiszy lewy alt + literę, aby uzyskać odpowiedni znak ctrl + literowy.Ustaw AutoHotKey ignoruj ​​Alt jako klucz menu

<!c::Send ^c 

W większości przypadków działa dobrze, z wyjątkiem części czasu w aplikacjach IE i Office. Po naciśnięciu lewego klawisza Alt, wkręca się z wstążką biurową/menu (tj. Pasek menu pokazuje w IE lub zaczynają się pojawiać listy wstążki w pakiecie Office 2010), a wywołana kombinacja ctrl + litera nie dociera do celu.

Przeczytałem FAQ AHK forum, wypróbowałem kilka opcji z modyfikatorami UP i $ do skrótu, ale to nie rozwiązało problemu. Jakieś pomysły?

Odpowiedz

1

Wygląda na to, że potrzebujesz modyfikatora wieloznacznego. Spowoduje to, że klawisz skrótu zostanie naciśnięty w połączeniu z innym kluczem. Mapowanie nadal działa. Podać następujące spróbować:

*LAlt::LCtrl 

uczyni Alt pożaru Ctrl dla każdego Alt + kombinacja klawiszy.

+0

przykrością informują, że to nie pomogło. Na przykład pasek menu przeglądarki IE wciąż miga, gdy naciskam klawisz Alt, i zjada kombinację klawiszy Ctrl +. Wydaje mi się, że potrzebuję sposobu, aby system Windows przestał rozpoznawać Alt zaraz po jego opuszczeniu i rozpoznaje całą kombinację klawiszy tylko wtedy, gdy zostanie całkowicie wciśnięty i wciśnięty. – ttarchala

+1

Ah, widzę to zachowanie. Mapping Alt to Return wyłącza to, ale po dodaniu innej kombinacji, alt aktywuje menu. Próbowałem kilku rzeczy, ale nie byłem w stanie wymyślić rozwiązania. –

0

Zastosowanie

LAlt::LCtrl 

ten zastąpi LAlt z LCtrl

+0

Zobacz moje uwagi na temat odpowiedzi Elliota DeNolfa - nie rozwiązuje to problemu, którego doświadczam. – ttarchala

2

użytkowania

LAlt::LCtrl 

umieścić go w pliku AHK skompilować i uruchomić .exe z prawami administratora

prawo kliknij -> Uruchom jako administrator

Przetestowałem to na Windows 7 i działa, LAlt już nie strzela w ogóle i jest całkowicie zastąpione przez LCtrl.

+0

"Uruchom jako administrator" wydaje się poradzić sobie z mapowaniem, ale jest zbyt globalne - tracę ważne skróty systemu Windows, takie jak Alt-Tab. Czy masz pojęcie, co może działać z bardziej szczegółowymi skrótami, takimi jak te, które zrobiłem? – ttarchala

+0

Zamiast tego użyj opcji ~ LAlt. –

+0

Przedrostek skrótu tyldą czyni go jeszcze gorszym - teraz alt działa normalnie, tzn. Alt + V otwiera menu Widok w IE zamiast wklejać schowek. Może robię coś nie tak? Odpowiednia linia ze skryptu wygląda teraz tak: '~ ttarchala

0

można również zamienić dwa przyciski.

Coś jak:

LAlt::LCtrl 
LCtrl::LAlt 

W ograniczonej testów zrobiłem, to działa, ale może trzeba uczyć się na nowo niektóre skróty najważniejszych okno. W zasadzie po prostu zamienia dwa przyciski.

2

Wystarczy Sprawdziliśmy to na Win-7 i działa, nawet z IE.

00 00 00 00 00 00 00 00 03 00 00 00 1d 00 38 00 38 00 1d 00 00 00 00 00 00 

Oto tekst SwapCtrlAlt.reg.

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,38,00,38,00,1d,00,\ 
    00,00,00,00,00 
+0

Dzięki za odpowiedzi, zasługują na upomnienie jako dość pouczające, ale nie mogę naprawdę nagrodzić nagrody. Podobnie jak w przypadku innych sugestii zamiany alt przy pomocy ctrl na całym świecie, tracę ważne skróty Windows takie jak Alt-Tab w ten sposób, dlatego chciałem to zrobić z AHK. W przeciwnym razie można zamienić alt ctrl (lub dowolnymi innymi klawiszami) za pomocą narzędzia KeyTweak, które już znam. – ttarchala

+2

Po prostu dla twojej informacji, sprawdziłem, czy Send, {vkA4sc038} i Send, {vkA2sc01D} będą działać, ale nawet jeśli wyłączysz Alt :: Return i Ctrl :: Return, IE kontynuuje odpowiedź, ponieważ patrzy na niski poziom skanowania Koduje bezpośrednio, więc adresuje to tylko program (lub regedit), który bezpośrednio kontroluje kody scancodes. –

12

Zapobiega to klawisz Alt bok lewy od aktywacji paska menu dla większości zastosowań (pod Windows 7 i AutoHotkey 1.1.11.01):

~LAlt Up:: return 

To nie działa w przeglądarce Internet Explorer ale i tak często nie używam IE. :)

BTW, ja też zabity irytujące menu start popup poprzez:

~LWin Up:: return 
~RWin Up:: return 
+0

Wydaje się działać! Dziękuję Ci! – certainlyakey

+1

@ surelyakey Jeśli w tej odpowiedzi rozwiązałeś swój problem, rozważ zaakceptowanie tego: –

+0

to nie ja napisałem post. – certainlyakey