Reasigne Winkey y deshabilite sus atajos

Reasigne Winkey y deshabilite sus atajos

El propósito es jugar y quiero reasignar Winkey a alguna otra tecla para que el menú Inicio no aparezca cuando lo presiono, y quiero desactivar los accesos directos de Winkey como Winkey+e (que abre explorer.exe) mientras Estoy en un juego.

Esto es lo que he probado hasta ahora:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    LWin & e::e
    return
#IfWinActive

Los juegos no recogen la reasignación, Lwin se trata como Lwin pero el menú Inicio está bloqueado, que es la mitad de lo que buscábamos.

Pero, si presiono y mantengo presionada Winkeyla etecla, se abre, explorer.exelo cual no está previsto, deseo que se hayan presionado la ptecla y la tecla en este paso.e

¿Existe algún experto de AHK que haya logrado esto?

Intenté bloquear el acceso directo de esta manera:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    Lwin & e::
    return
#IfWinActive

Pero solo enviaría la pclave, omite la eclave.

También intenté usar el Sendcomando con Upun comando como este:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    LWin & e::
        Send {LWin Up}
        Send {e Down}
    return
    e Up::Send {e Up}
    return
#IfWinActive

Todo está arreglado excepto que la etecla no hace nada por sí sola (presionarla únicamente no hace nada, solo funciona si se presiona LWin y luego ese presiona). Tenga en cuenta que el primer problema tampoco se resuelve aquí, lo que significa que la clave LWin no se reasigna pen el juego.


El juego particular que estoy probando en estos scripts es Minecraft, pero también lo probé en CS:GO y la clave LWin no se reasigna p, todavía se trata como Winkey. Este no es el caso de Notepad.exe u otros programas que no son juegos, LWin::pse reasigna Winkeya p.

Respuesta1

La clave de Windows es una clave problemática para reasignar en AutoHotkey. Esto se debe a que en realidad no puede evitar que Windows vea que se presionó la tecla de Windows, por lo quenecesita enviar pulsaciones de teclas simuladas adicionales para evitar que se abra el menú de inicio. Su mejor apuesta para la confiabilidad en los juegos es la siguiente:

Primero reasigne la tecla usando SharpKeys a una tecla que no existe en su teclado, como F15. Luego, reasigna esta clave por separado para los casos en los que estás en el juego y en los que no:

#IfWinActive ahk_class LWJGL
    F15::p
#IfWinActive

#IfWinNotActive ahk_class LWJGL
    F15::LWin
#IfWinNotActive

(No necesita declaraciones de retorno para reasignaciones o cuando una tecla de acceso rápido necesita ejecutar solo una línea).

Respuesta2

Todo lo que necesita hacer es reasignar la clave en sí, no necesita reasignar las combinaciones de teclas LWin.

#IfWinActive ahk_class LWJGL
    LWin::p
#IfWinActive

Con LWin & e::elo que estás reasignando a "e". Por lo tanto, se pasan las teclas modificadoras. En este caso, la clave Win pasa, por lo que obtienes Win + E.

Tenga en cuenta que {blind}permite que todas las teclas modificadoras afecten las teclas que presiona, porque si reasigna una tecla a, digamos, "e", y quiere que esté en mayúscula, deberá mantener presionada la tecla "Shift" y presionar su "tecla reasignada".

También tenga en cuenta que una reasignación de teclas utiliza Send, {DownR}un método que tiene un efecto similar a presionar físicamente la tecla para usar con atajos de teclado.

información relacionada