Nadpisanie przycisku HOME i MAIL na klawiaturze - przycisz i zgłośnij

Jak nadpisać przycisku HOME i MAIL na klawiaturze - funkcjami “przycisz” i “zgłośnij”?

Mam tylko takie klawisze dodatkowe na klawiaturze i chcę je wykorzystać do regulacji głośności.

Witaj

Ja stosuję AutoHotKey.
Należy sprawdzić jaki jest kod klawisza, wtedy można użyć skryptu nadpisującego funkcję klawisza

W razie czego pisz

Pozdrawiam serdecznie
Juliusz

Logitech powinien oferować programowanie klawiszy.

1lajk

Zainstalowałem.
Tam jest tylko instrukcja jako program?

Potrzebuję właśnie złapać kod tych klawiszy i też komendę do ściszania oraz zgłaśniania.
Jak można?
Przydałoby się coś jak to dla JS (tam jest LaunchMail a drugie nie wiem bo nowa karta się otwiera).

Komendy mam:

^+Left::SoundSet,-5
^+Right::SoundSet,+5

(kiedyś autohotkey się bawiłem ale bardzo dawno temu)

1lajk

Już mam!:

Browser_Home::SoundSet,-5
Launch_Mail::SoundSet,+5

Ale pytanie:
Jak zrobić, żeby przytrzymanie klawisza ściszało dalej? Żebym nie musiał klikać wielokrotnie jak chcę mocno ściszyć?

2lajki

Już pisałem jak to zrobić :wink:
Tzn. jak odszukać kod klawisza

Dawno nie zaglądałem na Multimedia Key

Powinno działać jako ciągle wciśnięty

Remapped keys will auto-repeat while being held down (except keys remapped to become mouse buttons).

Może opcja KeyPress i GetKeyState
https://autohotkey.com/board/topic/83006-solved-mute-on-keypress-volume-down-on-longer-key-hold/

Dla tego działa przytrzymanie:

+Left::SoundSet,-5
+Right::SoundSet,+5

Ale dla tego co chcę używać (z HOME i MAIL), to nie działa przytrzymanie.

Tylko jak tego użyć? Przerobisz ten mój kod?

Ustaw Twoje klawisze bez przecinka

Browser_Home::SoundSet -5
Launch_Mail::SoundSet +5

Zrobiłem jak napisałeś i nic się nie zmieniło. :confused:

1lajk
Browser_Home::
Sleep, 250
If (GetKeyState(A_ThisHotkey, "P"))
	While (GetKeyState(A_ThisHotkey, "P"))
	{
		Send, {Volume_Down}
		Sleep, 50
	}
Else
	Send {Volume_Mute}
Return

Launch_Mail::
Sleep, 250
If (GetKeyState(A_ThisHotkey, "P"))
	While (GetKeyState(A_ThisHotkey, "P"))
	{
		Send, {Volume_Up}
		Sleep, 50
	}
Return
1lajk

Ogólnie działa.
Był lekki lag ale zmniejszyłem 250 na 50 i jest ok.

Teraz jest ok. Dzięki. :smiley:

1lajk

Chociaż występuje ciekawy niechciany efekt:
Sytuacja:

  • zgłaśniam, mam już lekko za głośno i zaczynam przyciszać…
  • wciskam przycisk ściszania ZANIM puszczę przycisk zgłaśniania…
  • dźwięk zaczyna się ściszać, ale gdy puszczam przycisk zgłaśniania, to ściszanie zostaje przerwane
  • muszę puścić też przycisk przyściszania i ponownie go wcisnąć, żeby kontynuować przyściszanie

Dziwny efekt ale nic wielkiego, w losowych sytuacjach może nieco rozproszyć uwagę od rzeczy którą robię.

Browser_Home::
Sleep, 50
If (GetKeyState(A_ThisHotkey, "P"))
	While (GetKeyState(A_ThisHotkey, "P"))
	{
		Send, {Volume_Down}
		Sleep, 50
	}
Else If (GetKeyState("Launch_Mail", "P"))
	{
		Send {Launch_Mail}
	}	
Else
	Send {Volume_Mute}
Return

Launch_Mail::
Sleep, 50
If (GetKeyState(A_ThisHotkey, "P"))
	While (GetKeyState(A_ThisHotkey, "P"))
	{
		Send, {Volume_Up}
		Sleep, 50
	}
Else If (GetKeyState("Browser_Home", "P"))
	{
		Send {Browser_Home}
	}	
Return

Nie pomogło.

Sprawdzałem na zwykłym klawiszu.
Inaczej działają od klawiszy multimedialnych, chodzi o przerwania

Zamień w obu Else If

	{
		Send {Launch_Mail}
		Return
	}	

i tu

	{
		Send {Browser_Home}
		Return
	}

Gdy nie zadziała to usuń w obu całą linię Send i zostaw tylko Return

Wyłącz skrypt zanim zrobisz edycję

Ani tak ani tak nie pomaga. :confused:

Jakoś przeżyję, trudno.
Ale jak masz jeszcze pomysły to będę próbował.

1lajk

AWARIA AWARIA!!

Jak wejdę w grę np. Among Us i tam używam skrótów, to autohotkey tam nie działa - otwiera się mail i strona domowa przeglądarki. :frowning:

A w sumie najbardziej po to mi to było bo tak mam volume2 które sprawia że mogę regulować głośność kręcąc kółkiem myszy nad paskiem zadań Windows-a.

Wychodzi na to, że trzeba dodać komendę #If

#If (typing) && WinActive("Among Us")
Browser_Home::
Sleep, 50
If (GetKeyState(A_ThisHotkey, "P"))
	While (GetKeyState(A_ThisHotkey, "P"))
	{
		Send, {Volume_Down}
		Sleep, 50
	}
Else If (GetKeyState("Launch_Mail", "P"))
	{
		Send {Launch_Mail}
	}	
Else
	Send {Volume_Mute}
Return
#If

#If (typing) && WinActive("Among Us")
Launch_Mail::
Sleep, 50
If (GetKeyState(A_ThisHotkey, "P"))
	While (GetKeyState(A_ThisHotkey, "P"))
	{
		Send, {Volume_Up}
		Sleep, 50
	}
Else If (GetKeyState("Browser_Home", "P"))
	{
		Send {Browser_Home}
	}	
Return
#If

Zakładam, że okno gry to Among Us, a sugerowałem się innym skryptem do gry
https://www.autohotkey.com/boards/viewtopic.php?f=76&t=85470&hilit=among+us

Możliwe, że trzeba będzie zmodyfikować

Uruchom skrypt z prawami administratora. Wtedy powinien działać w grze. Przynajmniej ja tak miałem z AHK.

1lajk

O, pomogło.
A da się żeby skrypt autohotkey uruchamiał się na starcie jako admin bez pytania o pozwolenie?