Shoutbox

Away since.... - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Thread: Away since.... (/showthread.php?tid=93087)

Away since.... by sno on 12-01-2009 at 01:24 PM

Ok i've spent some time searching, there was 1 result that looked promising but the file no longer exists.

Im looking for a Script that changes my PSM, to the time my status went to Idle/Away eg

Away since 12:27 PM (GMT0)

Is this possible and if so how could i go about getting it set?


RE: Away since.... by Spunky on 12-01-2009 at 01:38 PM

It's very possible to do. It could be written in 5 minutes... If I've got time later...


RE: Away since.... by matty on 12-01-2009 at 03:21 PM

Something like this:

Javascript code:
var LOCALE_USER_DEFAULT = 0x400;
var TIME_NOSECONDS = 0x2;
 
function OnEvent_MyStatusChange(nStatus) {
    var oStatus = { STATUS_ONLINE : 'Online',
                    STATUS_BUSY : 'Busy',
                    STATUS_AWAY : 'Away',
                    STATUS_IDLE : 'Idle',
                    STATUS_INCALL : 'On the phone',
                    STATUS_OUTLUNCH : 'Out to lunch'
                  }
    if (typeof oStatus[nStatus] === 'object') {
        var SYSTEMTIME = Interop.Allocate(16);
        var sTime = Interop.Allocate(512);
        var sDate = Interop.Allocate(512);
       
        Interop.Call('kernel32', 'GetSystemTime', SYSTEMTIME);
        Interop.Call('kernel32', 'GetTimeFormatW', LOCALE_USER_DEFAULT, TIME_NOSECONDS, SYSTEMTIME, 0, sTime, sTime.Size);
        Interop.Call('kernel32', 'GetDateFormatW', LOCALE_USER_DEFAULT, 0, SYSTEMTIME, 0, sDate, sDate.Size);
        Messenger.MyPersonalMessage = oStatus[nStatus]+ ' since '+sDate.ReadString(0) +' '+sTime.ReadString(0);
    }
}


RE: Away since.... by Spunky on 12-01-2009 at 03:44 PM

quote:
Originally posted by matty
Something like this:

Why not just new Date()?
RE: Away since.... by sno on 12-01-2009 at 03:52 PM

What about storing, and restoring a previous PSM? i did mean to state that in before :P


RE: Away since.... by matty on 12-01-2009 at 04:08 PM

quote:
Originally posted by Spunky
quote:
Originally posted by matty
Something like this:

Why not just new Date()?
Not sure lol; real reason is the API then allows you to get the date and time in the users locale.

quote:
Originally posted by sno
What about storing, and restoring a previous PSM? i did mean to state that in before :P
Read the documentation and add it in :P
RE: Away since.... by sno on 12-01-2009 at 07:51 PM

i didn't quite get what you posted to work matty, but i took some time to properly read the documentation and changed the method and since i only wanted it for when im idle changed it accordingly
Even got the psm stored and restored working ^^, not bad for a first try :)

code:
var LOCALE_USER_DEFAULT = 0x400;
var TIME_NOSECONDS = 0x2;

function OnEvent_Uninitialize(MessengerExit)
{
    Messenger.MyPersonalMessage = oPSM;
}

function OnEvent_MyStatusChange(nStatus) {
    if (nStatus == 6) {
        var SYSTEMTIME = Interop.Allocate(16);
        var sTime = Interop.Allocate(512);
        var sDate = Interop.Allocate(512);
       
        Interop.Call('kernel32', 'GetSystemTime', SYSTEMTIME);
        Interop.Call('kernel32', 'GetTimeFormatW', LOCALE_USER_DEFAULT, TIME_NOSECONDS, SYSTEMTIME, 0, sTime, sTime.Size);
        Interop.Call('kernel32', 'GetDateFormatW', LOCALE_USER_DEFAULT, 0, SYSTEMTIME, 0, sDate, sDate.Size);
        Messenger.MyPersonalMessage = 'Idle since '+sDate.ReadString(0) +' '+sTime.ReadString(0)+' (GMT0)' ;
        isIdle = true;
        oPSM = Messenger.MyPersonalMessage;
    }
    else if( isIdle == true )
    {
        isIdle = false;
        Messenger.MyPersonalMessage = oPSM;
    }
}