Silentdragon
Full Member
if(life==null && wrists) EmoAlert();
Posts: 148 Reputation: 2
34 / / –
Joined: Jun 2006
|
RE: [request] Flashing Keyboard LED's when message received
code: //WML Flash 1.0 for MPL! (Smilie) by ivan300@yahoo.com
// slightly modified by djcarre@gmail.com, silentdragon@gmail.com, and mgrove03@gmail.com
var selectiveBlink = 0
var beep = 0
var keep_caps = 0
var VK_num = 144
var VK_scroll = 145
var VK_caps = 20
var KEYEVENTF_KEYUP = 0x02
var count = 0
function OnEvent_Initialize(bMessengerStart){
}
function OnEvent_Uninitialize(bMessengerExit){
}
//when a chat window is created it starts a timer
function OnEvent_ChatWndCreated(){
MsgPlus.AddTimer('check', 200);
}
function OnEvent_ChatWndReceiveMessage(Wnd, Origin,Message,MessageKind){
if(selectiveBlink == 1) {
var contacts = new Enumerator(Wnd.Contacts);
for (; !contacts.atEnd(); contacts.moveNext())
{
var contact = contacts.item();
switch(contact.Email){
case 'someemail@hotmail.com' :
case 'someemail2@hotmail.com' :
MsgPlus.AddTimer('check',200);
count++;
break;
}
if(count) break;
}
count = 0;
} else
if(Origin != Messenger.MyName)
MsgPlus.AddTimer('check',200);
return Message;
}
//when the chat window is closed it stops the timers and turns the light off
function OnEvent_ChatWndDestroyed(){
MsgPlus.CancelTimer('check');
MsgPlus.CancelTimer('check2');
}
//stops the blining when you type into the convo
//make sure to change VK_scroll accordingly if youre using a different led
function OnEvent_ChatWndEditKeyDown(Wnd, key){
if(key != VK_scroll && key != VK_caps){
MsgPlus.CancelTimer('check');
MsgPlus.CancelTimer('check2');
}
}
//to change which light you want to blink change the
// Vk_scroll to VK_num for num lock or VK_caps for caps lock
//this turns the light off and on depending on the timers
function OnEvent_Timer(sTimerId){
if(sTimerId == 'check'){
//Debug.Trace('check');
Interop.Call('user32', 'keybd_event', VK_scroll, 0, 0, 0);
Interop.Call('user32', 'keybd_event', VK_scroll, 0, 2, 0);
if(beep) Interop.Call('kernel32', 'Beep', 1000 , 50);
if(!Interop.Call('user32', 'GetKeyState', VK_caps))
MsgPlus.AddTimer('check2', 100);
else if(!keep_caps) {
Interop.Call('user32', 'keybd_event', VK_caps, 0, KEYEVENTF_KEYUP, 0);
Interop.Call('user32', 'keybd_event', VK_caps, 0, 0, 0);
}
}
if(sTimerId == 'check2'){
//Debug.Trace('check2')
Interop.Call('user32', 'keybd_event', VK_scroll, 0, 0, 0);
Interop.Call('user32', 'keybd_event', VK_scroll, 0, KEYEVENTF_KEYUP, 0);
if(beep) Interop.Call('kernel32', 'Beep', 1000 , 50);
if(!Interop.Call('user32', 'GetKeyState', VK_caps))
MsgPlus.AddTimer('check', 100);
else if(!keep_caps) {
Interop.Call('user32', 'keybd_event', VK_caps, 0, KEYEVENTF_KEYUP, 0);
Interop.Call('user32', 'keybd_event', VK_caps, 0, 0, 0);
}
}
}
Selective emails should work now, keep caps on is in option, but the current method won't work because caps are on. To switch that remove the ! from !Interop.Call('user32', 'GetKeyState', VK_caps) both times. Has an option to beep too.
|
|