|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Переключение раскладки клавиатуры Caps-lock'ом
Переключается раскладки клавиатуры через Caps-Lock.
Лампочка Scroll-lock'а - отображает текущий язык ввода. Непосредственно режим caps-lock включается/выключается клавишами shift+caps-lock. Написано на основе lswitch + KbLangLED, но использование 2 утилит мне не понравилось, поэтому решил совместить их в одной программе. скачать исходники можно отсюда Програмистами не рождаются, ими становятся! Последний раз редактировалось SCrat.ORS, 06.10.2012 в 01:52. |
#2
|
||||
|
||||
Во-первых, выложенный исходник не компилируется, потому как содержит ошибки. И часть ошибок намекает на то, что код переводили с C++.
Во-вторых, после исправления ошибок мне удалось собрать программку с более чем в 4 раза меньшим размером -- с модулями KOL. Для мелких утилит -- самое то. Работоспособность вроде сохранилась. Какая лицензия у исходника, кстати? |
#3
|
||||
|
||||
Цитата:
Я писал на Делфи 2006, все компилируется без проблем. в коде разница только в этом? Код:
{$IFDEF Tricks} HeapMM, {$ENDIF} И что это даёт?... З.Ы. скомпилировав твоё вышло почти 83 кб... чем компилируешь ты? З.Ы.Ы. С ужосом заметил, что выложил не ту версию исходников, перезалил туда же. Лицензия - с указанием моего авторства в составе желательно. А так свободная - мне не жалко. Програмистами не рождаются, ими становятся! Последний раз редактировалось SCrat.ORS, 05.10.2012 в 23:11. |
#4
|
||||
|
||||
Цитата:
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
||||
|
||||
Цитата:
KOL ... хм не слышал, почитаю гугл =) на API - был вариант сделать,. но как-то влом расписывать потоки Програмистами не рождаются, ими становятся! |
#6
|
||||
|
||||
Действительно код писан на С, а потом перенесён в Дельфи без понимания сути. После исправления ошибок (Hi Freeman) , скомпилировался.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
||||
|
||||
Цитата:
3 пост. Програмистами не рождаются, ими становятся! |
#8
|
||||
|
||||
Ну тогда объясни, зачем здесь &
Код:
while GetMessage(&msg, 0, 0, 0) do begin TranslateMessage(&msg); DispatchMessage(&msg); end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
||||
|
||||
Цитата:
Да, этот момент переехал вместе с Си... как то упустил. Вообще тогда меня больше мучал вопрос, как сделать Хуки без ДЛЛ, и почему когда Хук работает без Длл, и при вставке кода ЛЕД в цикл GetMessage, хук переставал работать?... Програмистами не рождаются, ими становятся! |
#10
|
||||
|
||||
Потому что DLL может "встраиваться" в "чужие" процессы, exe-шникам это запрещено.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
||||
|
||||
Да, но ведь работает в ехе!
Вообще как я понял, для работы хука надо просто запретить трансляцию месагов,... Програмистами не рождаются, ими становятся! Последний раз редактировалось SCrat.ORS, 05.10.2012 в 23:35. |
#12
|
||||
|
||||
При запуске из консоли (FAR), скрывает значок смены "языка" и Scroll-lock не переключается.
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 05.10.2012 в 23:46. |
#13
|
||||
|
||||
Цитата:
быть может при активном окне FAR консоль использует свои хуки? вот идея которую я не смог реализовать в сей программке: включение/выключения режима CAPS-LOCK при нажатии shift + caps-lock, или двойным нажатием на caps-lock. При реализации получалось что при определённых моментах срабатывает, но после включения CAPS-LOCK назад он не выключался, или выключался но после того как сменишь раскладку... вообщем бред какой то получался. так я и сдался. Програмистами не рождаются, ими становятся! |
#14
|
||||
|
||||
Ну правильно, у тебя проверяется только на CapsLock без учёта других клавиш
Код:
fEatKeystroke := (p^.vkCode = 20); Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 06.10.2012 в 00:01. |
#15
|
||||
|
||||
Конечно, я же убрал другие проверки клавиш перед тем как выложить исходник. Пробывал всталял проверки шифта, или счетчик нажатий капса, что бы не только можно было переключит раскладку, но и включить капс. И мне показалось, что при включенном капсе скан коды как-будто изменяются.
Програмистами не рождаются, ими становятся! |