Дело было вечером, делать было нечего. Купил я как то ноут Asus N56VM, в нем есть подсветка клавиатуры и подумалось мне, что просто подсветка это не интересно.
Что можно сделать с подсветкой? - Правильно! Помигать!
Вот и взялся я посмотреть как включается подсветка. После некоторых поисков, локализовал управление подсветкой с помощью клавиатуры в "C:\Program Files (x86)\ASUS\ATK Package\ATK Hotkey\HControl.exe". После дебагинка в IDA были найдено следующие:
что подсветка включалась - выключалась с помощью вызова DeviceIoControl с определенными параметрами. В результате была написана функция включения и регулировки подсветки.
Но просто мигать подсветкой не интересно, по этому после непродолжительного изучения SkypeAPI была написана программа которая мигает подсветкой при приходе сообщения или поступления звонка. Программа висит в трее и позволяет регулировать подсветку и мигает при событии от skype. Инсталляция убрана в связи с не актуальностью.
Программа работает на серии ноутбуков Asus Nx6 при установленном Skype.
Если у вас есть идеи как еще можно использовать подсветку клавиатуры, то пишите в комментариях.
14.04.3013 Добавлена возможность запускать свои приложения при нажатии fn+ 1, V, C
Что можно сделать с подсветкой? - Правильно! Помигать!
Вот и взялся я посмотреть как включается подсветка. После некоторых поисков, локализовал управление подсветкой с помощью клавиатуры в "C:\Program Files (x86)\ASUS\ATK Package\ATK Hotkey\HControl.exe". После дебагинка в IDA были найдено следующие:
что подсветка включалась - выключалась с помощью вызова DeviceIoControl с определенными параметрами. В результате была написана функция включения и регулировки подсветки.
public static int GetLevel()
{
return Level(0, 0x424B4C47);
}
public static int SetLevel(int level)
{
return Level(level, 0x424B4C53);
}
public static int Level(int level, int code)Консольную утилиту для регулировки и мигания подсветки для Asus Nx6 можно скачать тут
{
byte[] outBuffer = new byte[0x300];
int[] inBuffer = new int[6] { 2, 0, 1, 8, 0x040000, 0x80 };
inBuffer[1] = code;
inBuffer[5] = level | 0x80;
bool result = false;
int bytesReturned = 0;
SafeFileHandle _hdev = new SafeFileHandle(CreateFile("\\\\.\\ATKACPI", 0xC0000000, 3, IntPtr.Zero, 3, 0, IntPtr.Zero), true);
if (_hdev.IsClosed | _hdev.IsInvalid)
{
WarningMessage("Error opening device");
return -1;
}
unsafe
{
fixed (byte* p1 = &outBuffer[0])
{
fixed (int* p = &inBuffer[0])
{
result = DeviceIoControl(_hdev, 0x00222404, (IntPtr)p, 0x18, (IntPtr)p1, 0x300, out bytesReturned, IntPtr.Zero);
}
}
}
if (result == false)
{
int error_code = Marshal.GetLastWin32Error();
WarningMessage("error code: " + error_code);
return -1;
}
if (code == 0x424B4C47)
{
return outBuffer[0x10];
}
return level;
}
Но просто мигать подсветкой не интересно, по этому после непродолжительного изучения SkypeAPI была написана программа которая мигает подсветкой при приходе сообщения или поступления звонка. Программа висит в трее и позволяет регулировать подсветку и мигает при событии от skype. Инсталляция убрана в связи с не актуальностью.
Программа работает на серии ноутбуков Asus Nx6 при установленном Skype.
Если у вас есть идеи как еще можно использовать подсветку клавиатуры, то пишите в комментариях.
14.04.3013 Добавлена возможность запускать свои приложения при нажатии fn+ 1, V, C
Ого! Раз вы в силах сделать такие чудеса, может сможете написать утилитку, которая бы изменяла действие горячих "Fn + стрелки" на свой проигрыватель, а не стандартный? Было когда-то решение http://asusfans.ru/659-multimediynye-goryachie-klavishi-fn-v-audio-video-prilozheniyah.html но оно не работает с данной линейкой ноутбуков :(
ОтветитьУдалитьЧЕЛОВЕЧИЩЕ!!! ГЛЫБА!!! )))))))
ОтветитьУдалитья мечтал о такой программе с того самого момента, как купил свой n56vz. меня ошарашили ~10 процессов, которые висели в памяти лишь для того, чтобы задействовать единственную нужную (лично мне) функцию - подсветку клавиатуры! поэтому я их снёс, в конце концов вычислил, что для работы подсветки нужны только hcontrol и atkwmiacpi64, и написал даже скрипт чтобы включать/выключать с ярлыка. но у hcontrol'a побочный эффект в том, что после тушения экрана по fn+F7 он начинает включаться при шевелении мышем.
спасибо огромное за программку!))))
Не запускается. Win 7 64. Пишет что прекращена работа.
ОтветитьУдалитьДолжен быть запущен скайп
Удалитьвообще лучше использовать http://kulasov.blogspot.com/2013/05/asus-n46n56n76.html