Shoutbox

Media PSM - 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: Media PSM (/showthread.php?tid=65914)

Media PSM by Spunky on 09-06-2006 at 05:08 PM

I did a search for this and kind of found what I was looking for, but this is on kind of a different slant... 

I'm looking for a way to set the Media PSM (I know it's only read-only) for my script. I heard someone made a DLL that can be used to do it. Does anyone know where I can get this and instructions on how to use it?  If not does anybody know another way to do it?

Maybe it should be a read-write property in the next version of plus! ;)


RE: Media PSM by Felu on 09-06-2006 at 05:13 PM

quote:
Originally posted by SpunkyLoveMuff
I did a search for this and kind of found what I was looking for, but this is on kind of a different slant... 

I'm looking for a way to set the Media PSM (I know it's only read-only) for my script. I heard someone made a DLL that can be used to do it. Does anyone know where I can get this and instructions on how to use it?  If not does anybody know another way to do it?

Maybe it should be a read-write property in the next version of plus! [Image: msn_wink.gif]
Have a look at the xPSM script and the AppMon+. They both use the same dll so having a look at the code may make it easy for you :p.

I Got it i guess
code:
new ActiveXObject('felipe.sarabia').SetMusicInfo('', '', '', 'Music/Games/Office', '', 'Set PSM');

You need to change Set PSM to what you want after the icon and chose any one from Music/Games/Office and also let those '' be as it is :p. Make sure you have the DLL with you :p.


|-)
RE: Media PSM by Zeh on 09-06-2006 at 05:17 PM

Was going to say the same thing about teh AppMon+.


RE: Media PSM by Spunky on 09-06-2006 at 06:42 PM

Yeah, thanks -!Felu!- It works great :D Thanks also to the author of the dll file as well, obviosuly


RE: Media PSM by -dt- on 09-06-2006 at 10:42 PM

or an even better way which doesnt require dlls or com objects

code:
/*
Function by -dt- (Matt Labrum) (Converted from http://forums.fanatic.net.nz/index.php?showtopic=11311&st=0# )

Void setNowPlaying( boolean enabled, [String type [, String format [, String title [, String artist [, String album [, String contentID ]]]]]] );

if enabled is true the now playing will show, if its false then the personal message will show.
type is the type of image you want to display. Either Music, Office or Games.
format is the format of the song eg {0} by {1} which would show title by artist.
format can also be a message eg "moo goes the cow"

Examples:

setNowPlaying(true, "Music", "{0} - {1}", "dt", "dt's band", "dt's album");

or setting it to a Game icon and displaying a message

setNowPlaying(true, "Games", "yay playing warcraft");

or set it to the office icon
Playing(true, "Office", "yay using word :P");
setNow

and turning it off
setNowPlaying(false);

*/


function setNowPlaying(enabled, type, format, title, artist, album, contentID){
    if(typeof(type) == "undefined")type = "Music";
    if(typeof(format) == "undefined")format = "";
    if(typeof(title) == "undefined")title = "";
    if(typeof(artist) == "undefined")artist = "";
    if(typeof(album) == "undefined")album = "";
    if(typeof(contentID) == "undefined")contentID = "";
    enabled = Math.abs(enabled);
   
    var WM_COPYDATA = 0x4A;
   
    //reference
    var song = Interop.Allocate(512);
   
    //change the Music thing to Games or Office or
    song.WriteString(0, "\\0" + type + "\\0" + enabled + "\\0" + format +"\\0" + title +"\\0" + artist + "\\0" + album + "\\0" + contentID + "\\0");
   
   
    //write our copyDataStruct Structure
    var copyDataStruct = Interop.Allocate(12);
    copyDataStruct.WriteDWORD(0, 0x547); //dwData
    copyDataStruct.WriteDWORD(4, song.Size); //cbData
    copyDataStruct.WriteDWORD(8, song.DataPtr);  //lpData
   
   
    //Send it to all open messengers
    var hMSGRUI = 0;
    do{
        hMSGRUI = Interop.Call("User32", "FindWindowExW", 0, hMSGRUI, "MsnMsgrUIManager", 0);
        if(hMSGRUI > 0){
            Interop.Call("User32", "SendMessageW", hMSGRUI, WM_COPYDATA, 0, copyDataStruct);   
        }
    }while(hMSGRUI != 0);


}


RE: RE: Media PSM by CookieRevised on 09-06-2006 at 11:41 PM

code:
    // Send ONLY to this messenger
    // if you need to find any other window, replace "MsnMsgrUIManager" with the class of
    // the window you need, and change the SendMessageW interop call to the function you want.

    var tIDCurrent = Interop.Call('Kernel32', 'GetCurrentThreadId');
    var hWnd = 0;
    while (hWnd = Interop.Call('User32', 'FindWindowExW', 0, hWnd, 'MsnMsgrUIManager', 0))
        if (Interop.Call('User32', 'GetWindowThreadProcessId', hWnd, 0) === tIDCurrent) {
            Interop.Call('User32', 'SendMessageW', hWnd, WM_COPYDATA, 0, copyDataStruct);
            break;
        }