Я испытываю непоследовательные расширения горячей строки в ахк. Например, следующая горячая строка

:o:192.::192.168.

работал до вчерашнего дня, но после сегодняшнего цикла загрузки / перезагрузки это не так.

Горячие клавиши все еще работают, как этот ниже

OpenClipboardFileWith(app)
{
    ;Run, Notepad.exe
    fname = %Clipboard% ;Open file in Clipboard, if it exists - similar to functionality in DOPUS
    ;MsgBox Before %fname%
    StringSplit, fname, fname, `r`n
    ;MsgBox %fname0%
    if (fname0 > 0) {
        ;convert newline seperated files to space seperated arguments for program
        StringReplace, fname, fname, `r`n, "%A_Space%", All
        fname = "%fname%"
        ;MsgBox parameters are %fname%
    }
    If !FileExist(fname1) {
        ;check for single element first
        fname = 
    }
    Loop %fname0%-1
    {
        element := fname%A_Index%
        ;element = "%element%"
        ;MsgBox %element%
        ;params = %params% %element%
        If !FileExist(element) {
            ;MsgBox Resetting fname as %element% doesn't exist.
            fname = 
        }
    }
    ;MsgBox After %app% %fname%
    Run, %app% %fname%
  return
}
#y::OpenClipboardFileWith(Share "\Programs\@Text\Editors\Notepad2\notepad2.exe") ;;Notepad (open file on clipboard)
#n:: Run, notepad.exe

Так что я не знаю, в чем проблема. Это происходит время от времени, и я столкнулся с этой проблемой на другом компьютере. Я предполагаю, что это связано с крючками клавиатуры и мыши. Я проверил в листинге скрипта (щелкните правой кнопкой мыши значок ахк> информация скрипта vew), и все было в порядке, хуки установлены.

Как мне решить проблему?

Я проверил, работает ли он от имени администратора.

MsgBox , , , %A_IsAdmin%

и это говорит 1. Я попробовал эти программы http://www.tranglos.com/activehotkeys/ и http://hkcmdr.anymania.com/index.html, но никакой помощи от них не было. Это показывает, что я зарегистрировал обычные горячие клавиши, но ничего о горячих клавишах. Любые другие инструменты, которые могут обнаружить и решить эти проблемы? Вопрос https://stackoverflow.com/questions/1465135/detecting-keyboard-hooks не поможет.

Кто-нибудь еще видел подобные проблемы?

Другая связанная проблема может заключаться в том, что перетаскивание случайным образом перестает работать, и мне приходится использовать нажатие и удерживание левой кнопки мыши, несколько раз нажать ESC, чтобы заставить его работать (хотя и не всегда).

Я предполагаю, что из-за различных программ, установленных на компьютере, одна вызывает эту проблему.

3 ответа3

1

Ваша проблема с "перетаскиванием" - менее известная "особенность" Windows 7. Чтобы восстановить перетаскивание, пока Редмонд не найдет время для его исправления, нажмите Ctrl + Alt + Del, а затем, когда появится синяя страница выбора, снова нажмите ESC . Я знаю, это звучит глупо, но это работает каждый раз.

По одной или другой причине:

:o:192.::192.168.

все еще требуется место, поэтому я изменил его на:

:*:192.::192.168.

Который работает без нареканий.

0

Это наконец начало работать после отключения UAC.

0

У меня была проблема с некоторыми из моих расширений не работает. Но проблема была в самом сценарии. Я включил сценарий, который написал кто-то другой, однако я не совсем понял, как это работает.

У него была директива, как

#IfWinActive, ahk_class Blah

У него не было конечного пробела

#IfWinActive

Это означало, что все горячие клавиши и расширения, следующие за этой первоначальной директивой (которая была большей частью моих расширений), применялись только в контексте Blah

Чтобы исправить это я добавил дополнительную директиву

#IfWinActive

после того, который начал это. Это делает контекст применимым ко всему снова.

Примером проблемного скрипта будет

;This is for in a Console Window
#IfWinActive, ahk_class ConsoleWindowClass
#a::
; Some short cut here
    return

::ex::Some expand which I expect to happen in all situations (which doesn't)

Чтобы исправить этот сценарий, вам нужно сделать следующее

;This is for in a Console Window
#IfWinActive, ahk_class ConsoleWindowClass
#a::
; Some short cut here
    return
#IfWinActive

::ex::Some expand which I expect to happen in all situations (which  it now does)

Для получения дополнительной информации о том, как это работает, смотрите https://www.autohotkey.com/docs/commands/_IfWinActive.htm.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .