Тема: AHK: SetCaretBlinkTime игнорируется в Firefox 4
Использую скрипт для изменения вида курсора и скорости моргания каретки при переключении раскладки клавиатуры.
Работает везде (проводник, блокнот, паинт и пр.), кроме как в Firefox. Раскладку и вид курсора он меняет,
а вот моргание полностью игнорирует - в лисе работают стандартные параметры в любых textbox и в строках поиска.
Выгрузил все остальные скрипты и проги, которые могли бы конфликтовать, оставил только нижеприведенную часть,
отключил все дополнения в лисе - ноль. На англоязычном форуме решения не нашел.
DetectHiddenWindows, On
#NoEnv
#Persistent
RCtrl::
DllCall("SetCaretBlinkTime", UInt, 450)
SetFormat, Integer, H
Locale1=0x4090409 ; Английский (американский).
Locale2=0x4190419 ; Русский.
WinGet, WinID,, A
ThreadID:=DllCall("GetWindowThreadProcessId", "Int", WinID, "Int", "0")
InputLocaleID:=DllCall("GetKeyboardLayout", "Int", ThreadID)
if(InputLocaleID=Locale1)
{
DllCall("SetCaretBlinkTime", UInt, 200)
SendMessage, 0x50,, % Locale2,, A
Cursor = %A_ScriptDir%\RuCursor.cur
CursorHandle := DllCall( "LoadCursorFromFile", Str,Cursor )
Cursors = 32512,32514,32515,32516,32640,32641,32642,32643,32644,32645,32646,32648,32650,32651
Loop, Parse, Cursors, `,
{
DllCall( "SetSystemCursor", Uint,CursorHandle, Int,A_Loopfield )
}
Cursor1 = %A_ScriptDir%\RuLink.cur
CursorHandle := DllCall( "LoadCursorFromFile", Str,Cursor1 )
Cursors = 32649
Loop, Parse, Cursors, `,
{
DllCall( "SetSystemCursor", Uint,CursorHandle, Int,A_Loopfield )
}
Cursor1 = %A_ScriptDir%\TextCur.cur
CursorHandle := DllCall( "LoadCursorFromFile", Str,Cursor1 )
Cursors = 32513
Loop, Parse, Cursors, `,
{
DllCall( "SetSystemCursor", Uint,CursorHandle, Int,A_Loopfield )
}
Return
}
else if(InputLocaleID=Locale2)
{
SendMessage, 0x50,, % Locale1,, A
SPI_SETCURSORS := 0x57
DllCall( "SystemParametersInfo", UInt,SPI_SETCURSORS, UInt,0, UInt,0, UInt,0 )
}
Return