На каком этапе он должен был появиться?
При попытке входа в настройки расширения.
Отсутствует
Версия 1.23 с поддержкой веток 17.0 и 18.0. Доступна через автоапдейт. Поддерживаемые ветки: 10, 16, 17, 18.
Отсутствует
hydrolizer
Тяжковато без вашего дополнения на Win x64
Можете все-таки собрать библиотеку для 64-битных систем? Это сложно?
Если вы не хотите увеличивать размер аддона из-за двух библиотек одновременно, то может собрать одну версию только для x64 без дальнейшего обновления?
Отсутствует
Это сложно?
Ну как сказать... нужно развернуть виндовс x64 на виртуалке, внутрь виртуалки поставить visual studio со всем необходимым, собрать, потестировать. Не столько сложно, сколько достаточно долго. Попробую на выходных это сделать.
Отсутствует
Возникли некоторые проблемы с вызовом методов WinAPI под Fx x64. Кто может - проверьте у себя под x64, как отработает вот такой код:
try { Components.utils.import("resource://gre/modules/ctypes.jsm"); Components.utils.import("resource://gre/modules/Services.jsm"); var lib=ctypes.open("user32.dll"); var method=lib.declare("GetKeyboardLayout",ctypes.winapi_abi,ctypes.uint32_t,ctypes.uint32_t); var res=method(0); lib.close(); Services.prompt.alert(null, "test", Number(res).toString(16).toUpperCase()); } catch(err) { Components.utils.reportError(err); }
- он выводит в алерте HKL текущей раскладки, т.е. должен вывести либо 4090409, либо 4190419. Если не будет никаких сообщений - загляните в консоль ошибок.
На всякий случай - под спойлером кастомная кнопка с этим кодом.
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3Ectypes%20test%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Btry%0A%7B%0A%09Components.utils.import%28%22resource%3A//gre/modules/ctypes.jsm%22%29%3B%0A%09Components.utils.import%28%22resource%3A//gre/modules/Services.jsm%22%29%3B%0A%09var%20lib%3Dctypes.open%28%22user32.dll%22%29%3B%0A%09var%20method%3Dlib.declare%28%22GetKeyboardLayout%22%2Cctypes.winapi_abi%2Cctypes.uint32_t%2Cctypes.uint32_t%29%3B%0A%09var%20res%3Dmethod%280%29%3B%0A%09lib.close%28%29%3B%0A%09Services.prompt.alert%28null%2C%20%22test%22%2C%20Number%28res%29.toString%2816%29.toUpperCase%28%29%29%3B%0A%7D%0Acatch%28err%29%0A%7B%0A%09Components.utils.reportError%28err%29%3B%0A%7D%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отсутствует
он выводит в алерте HKL текущей раскладки, т.е. должен вывести либо 4090409, либо 4190419
Да, так и есть.
Проверил под Win7 Ultimate x64, но с 32-разр. Firefox, т.к. только его использую.
Отредактировано Inko7 (20-11-2012 13:55:17)
Отсутствует
Да, так и есть
Т.е. 4090409/4190419? У меня почему-то выбрасывает 998 - ERROR_NOACCESS, т.е. firefox не может достучаться до самой библиотеки (системной). Буду разбираться, в чем дело.
но с 32-разр. Firefox
Да, именно так и нужно - пока не появится релизного firefox x64, за него даже нечего и браться, слишком там много может быть нестабильностей низкоуровневого характера.
Отсутствует
Версия 1.24 с поддержкой ветки 19.0. Доступна через автоапдейт. Поддерживаемые ветки: 17, 18, 19.
С версией для x64 пока не получается - лезут ошибки компиляции откуда-то изнутри xulrunner sdk. Есть подозрение, что для сборки под x64 соответственно нужен sdk x64 - а его нет (и вроде как никогда не было); на ftp лежит только win32 sdk (в отличие от sdk для linux и macos).
Отсутствует
Версия 1.25 с поддержкой ветки 20.0. Доступна через автоапдейт. Поддерживаемые ветки: 17, 19, 20.
Отсутствует
Версия 1.26. Доступна через автоапдейт. Поддерживаемые ветки: теоретически - все начиная с 5.0. На практике - надо пробовать. Версия тестировалась под текущую бету (21.0b). Основное отличие этой версии от всех предыдущих - в ней удалось избавиться от бинарного XPCOM-компонента, и теперь нет надобности пересобирать и перепаковывать расширение под каждый новый релиз. Кроме того, совместимость расширения теперь будет такой же, как у всех прочих расширений - оно будет совместимым до тех пор, пока не будет доказано обратного. И, наконец, поскольку единственная оставшаяся в составе расширения библиотека является обычной платформенной сишной библиотекой, не зависящей от xulrunner SDK, то её можно адаптировать к x64, чем я и займусь.
callback: null, callNextHookEx: null, hook: null, installHook: function() { let getCurrentThreadId = this.k32lib.declare("GetCurrentThreadId", ctypes.winapi_abi, ctypes.uint32_t); var threadId = getCurrentThreadId(); var callbackType = ctypes.FunctionType(ctypes.stdcall_abi, ctypes.int32_t.ptr, [ctypes.int, ctypes.int32_t, ctypes.int32_t]); var setWindowsHookExW = this.u32lib.declare("SetWindowsHookExW", ctypes.winapi_abi, ctypes.uint64_t.ptr, ctypes.int, callbackType.ptr, ctypes.int32_t.ptr, ctypes.uint32_t); this.callback = callbackType.ptr(this.shellProc, this); this.callNextHookEx = this.u32lib.declare("CallNextHookEx", ctypes.winapi_abi, ctypes.uint64_t.ptr, ctypes.int32_t.ptr, ctypes.int, ctypes.int32_t.ptr, ctypes.uint64_t.ptr); this.hook = setWindowsHookExW(10, this.callback, ctypes.int32_t.ptr(0), threadId); }, shellProc: function(code, wParam, lParam) { if (code<0) return this.callNextHookEx(0, code, wParam, lParam); if (code==8) this.fireLayoutChanged(lParam, SKLConst.CHANGED_FROM_OS); return this.callNextHookEx(0, code, wParam, lParam); }, uninstallHook: function() { let unhookWindow = this.u32lib.declare("UnhookWindowsHookEx", ctypes.winapi_abi, ctypes.bool, ctypes.uint64_t.ptr); var res = unhookWindow(this.hook); if (res) this.hook = null; },
Отсутствует
VORON
Спасибо, но оно какое-то не такое...
А раз еще и hydrolizer пишет:
... то её можно адаптировать к x64, чем я и займусь.
то вообще ничего другого искать не придется!
Отсутствует
Inko7
Собственно, вот: https://dl.dropbox.com/u/14131025/FMR/S … x.1.26.xpi - можно пробовать.
Даже не пришлось делать отдельную библиотеку - расширение на х64 работает с той же dll, что и на х86. Пришлось только подкорректировать ряд функций.
Это тестовая версия с тем же номером, что и у версии, выложенной сегодня утром. Если все будет в порядке - сделаю отдельную версию с автоапдейтом.
У себя работу проверял на Fx 21.0b и Win 7 Prof. x64 SP1 (чистая установка с дистрибутива, в систему были установлены только Far x64 и Firefox).
> Под х64 работает Transliterator
еще бы ему не работать - в его составе нет бинарников (и значит, он как минимум не переключает раскладку)
Отсутствует
Inko7
Если нетрудно - проверьте, как работает функция исправления регистра (в настройках выставить Состояние CapsLock при исправлении регистра - выключить, нажать капс, набрать текст, нажать хоткей исправления регистра). У меня на виртуалке с Win7x64 сам регистр исправляется, а вот состояние капслока не изменяется (при описанной последовательности действий он должен выключиться). Без каких-либо ошибок. На Win7x86 (не на виртуалке) всё работает так, как надо. Просто есть подозрение, что виновата именно виртуалка - хотелось бы это проверить.
Отредактировано hydrolizer (07-04-2013 08:10:35)
Отсутствует
VORONСпасибо, но оно какое-то не такое...
Ну за год я даже к её дурацкой CTRL+SHIFT+Q комбинации клавиш привык ,-как говорится за неимением гербовой....
еще бы ему не работать - в его составе нет бинарников (и значит, он как минимум не переключает раскладку)
-и чего ж с таким апломбом об этом полтора года назад не говорить,а?
Отсутствует
У меня на Win7Pro x64 все сработало как надо.
Спасибо. Версия 1.27. Доступна через автоапдейт, совместима с версиями 5.0 - 22.0 и выше, как для windows x86, так и для windows x64.
Отсутствует
hydrolizer
Кто нибудь знает как запретить открываться пустым вкладкам? Из за дополнений бывают ситуации когда открывается пустая вкладка, и дополнение не отключить, потому как нужное, вот и хочется запретить срабатывание пустых вкладок, а то достало.
Я учусь у Вас ! Спасибо Вам !
Отсутствует
DreamC
Да, это интересно...
У меня даже меню с настройками ни на 39 х64 ни на 40 х32 не работает, окно открывается пустым и даже ОК не нажимается.
8 х64 если что. Версия плагина 1.27.
Отредактировано VINRARUS (15-06-2015 15:06:13)
Отсутствует
VINRARUS
Упс... Извиняюсь - я перепутал тему...
Но специально (чтобы исправиться ) поставил это расширение версии 1.27 (правильно ведь?) и проверил.
Меню работает и контекстное тоже. Может галки какие нужно потыкать?
Отсутствует