What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » Scripting » Newest Version of my script doesnt start up

Newest Version of my script doesnt start up
Author: Message:
xXDarknessXx
New Member
*


Posts: 8
33 / Male / Flag
Joined: Apr 2009
O.P. Newest Version of my script doesnt start up
I recently updated my script [xXDarknessXx Detach] to add a new funtion and fixed a few bugs but doing so created a new one :S.

When I sign into WLM i check the script menu and my menu isnt their, its not in the / commands either, so i thought just might be a broken like or an error so I went into script editor and did save so I could see all the errors but no errors came up and it started working fine. I then restart WLM and it wasnt working again, it is ticked in the scripts window so it is enabled but i opened the debug window and it doesnt open any the functions untill ive gone in and saved it *-) here is my code its a little long but yea could someone please try and find the problem

code:
var emails;
var items;
var lEm;
var Shell = new ActiveXObject("WScript.Shell");
var closeDetach;
var s_unknown = 0;
var s_offline = 1;
var s_appearoffline = 2;
var s_online = 3;
var s_busy = 4;
var s_brb = 5;
var s_idle = 6;
var s_away = 7;
var s_onphone = 8;
var s_outlunch = 9;
var ContactListMenuLoc = 1;
var ChatWindowMenuLoc = 2;
var RegPath1 = "HKEY_CURRENT_USER\\SOFTWARE\\Patchou\\Messenger Plus! Live";
var RegPath2 = "\\"
var RegPath3 = Messenger.MyEmail + "\\Preferences\\TabChatAuto";
var RegPath = RegPath1 + RegPath2 + RegPath3;
var TabbedEnabled = Shell.RegRead(RegPath);
var DetachDisabled;
var DispNote;

function OnEvent_Initialize(MessengerStart)
{
    StartDetach();
}

function StartDetach()
{
    try
    {
        read('DarkCheck');
        try
        {
            read('AutoClose');
        }
        catch(ex)
        {
            write("AutoClose","false");
        }
        try
        {
            read('DispNote');
        }
        catch(ex)
        {
            write("DispNote","true");
        }
    }
    catch(ex)
    {
        write("emails","");
        write("DarkCheck");
        write("AutoClose","false");
        write("DispNote","true");
    }
    DispNote = read('DispNote');
    closeDetach = read('AutoClose');
   
    if(closeDetach == "true")
    {
        closeDetach = true;
    }
    else
    {
        closeDetach = false;
    }
   
    lEm = read('emails');
   
    if(TabbedEnabled == 0)
    {
        if(DispNote == "true")
        {       
            DetachDisabled = true;
            var Wnd = MsgPlus.CreateWnd("Interface.xml", "WndTabbed");
        }
    }
    else
    {
        write("DispNote","true");
        Shell.RegWrite(RegPath, 1,"REG_DWORD");
        DetachDisabled = false;
    }
}

function OnEvent_ChatWndSendMessage( oChatWnd, sMessage )
{
    var Message = sMessage.toLowerCase();
    if(DetachDisabled == false)
    {
        if (Message == "/detachoptions")
        {
            Debug.Trace("Dark Detach Option");
            OpenOptions();
            return '';
        }
        else if (Message == "/detach" )
        {
            detachcurrent(oChatWnd);
            return '';
        }
        else if (Message == "/detachabout" )
        {
            AboutWindow();
            return '';
        }
    }
    else
    {
        if (Message == "/detachenable" )
        {
            Shell.RegWrite(RegPath, 1,"REG_DWORD");
            DetachDisabled = false;
            return '';
        }
    }
}

function OnGetScriptCommands()
{
    if(DetachDisabled == false)
    {
        var commands = "<ScriptCommands>";
            commands += "<Command>";
            commands += "<Name>DetachOptions</Name>";
            commands += "<Description>Opens the Detach options</Description>";
            commands += "</Command>";
            commands += "<Command>";
            commands += "<Name>Detach</Name>";
            commands += "<Description>Detaches Current Chat</Description>";
            commands += "</Command>";
            commands += "<Command>";
            commands += "<Name>DetachAbout</Name>";
            commands += "<Description>Detach Info</Description>";
            commands += "</Command>";
            commands += "</ScriptCommands>";
    }
    else
    {
        var commands = "<ScriptCommands>";
            commands += "<Command>";
            commands += "<Name>DetachEnable</Name>";
            commands += "<Description>Enable tabbed chats and Detach Tabs</Description>";
            commands += "</Command>";
            commands += "</ScriptCommands>";
    }
    Debug.Trace(commands)
    return commands;
}

function OnGetScriptMenu(nLocation)
{
    Debug.Trace("Location = " + nLocation)
    var menu;
    if(DetachDisabled == false)
    {
        switch(nLocation)
        {
            case ChatWindowMenuLoc:
                Debug.Trace("Script Menu Chat Window");
                menu  = "<ScriptMenu>";
                menu +=   "<MenuEntry Id=\"Detach\">Detach Current Chat</MenuEntry>";
                menu += "<Separator/>";
                menu += menuGet();
                break;
            case ContactListMenuLoc:
                Debug.Trace("Script Menu Contact Window")
                menu = "<ScriptMenu>";
                menu += menuGet();
                break;
            default:
                Debug.Trace("Script Menu Other")
                menu = "<ScriptMenu>";
                menu += menuGet();
                break;
        }
    }
    else
    {
        menu  = "<ScriptMenu>";
        menu +=   "<MenuEntry Id=\"EnableDetach\">Enable Tabbed Chats and Detach</MenuEntry>";
        menu += "<Separator/>"
        menu += "</ScriptMenu>";
    }
    return menu;
}

function menuGet()
{
    var menu2;
    menu2 =    "<MenuEntry Id=\"AutoCloseOp\">" + AutoClose() + " Autoclose on Detach</MenuEntry>";
    menu2 +=   "<MenuEntry Id=\"Options\">Detach Options</MenuEntry>";
    menu2 += "<Separator/>";
    menu2 +=   "<MenuEntry Id=\"About\">About Darkness's Detach</MenuEntry>";
    menu2 += "</ScriptMenu>";
    return menu2;
}

function AutoClose()
{
    Debug.Trace("Get AutoClose")
    if(closeDetach == true)
        return "Disable";
    else
        return "Enable";
}

function OnEvent_MenuClicked (sId, nLocation, iWnd)
{
    var function_handler = sId + "_menuclicked";
    if (eval("typeof(" + function_handler + ")") == "function")
    {
        eval(function_handler + "(nLocation, iWnd);");
    }
}

function Detach_menuclicked (nLocation, Wnd)
{
    switch(nLocation)
    {
        case ChatWindowMenuLoc:
            detachcurrent(Wnd);
            break;
        case ContactListMenuLoc:
            break;
        default:
            break;
    }
}

function EnableDetach_menuclicked (nLocation, Wnd)
{
    Shell.RegWrite(RegPath, 1,"REG_DWORD");
    DetachDisabled = false;
}

function AutoCloseOp_menuclicked(nLocation, Wnd)
{
    var CloseVar;
    if(closeDetach == true)
    {
        closeDetach = false;
        write("AutoClose","false");
    }
    else
    {
        closeDetach = true;
        write("AutoClose","true");
    }
}

function Options_menuclicked (nLocation, Wnd)
{
    OpenOptions();
}

function About_menuclicked (nlocation,Wnd)
{
    AboutWindow();
}

function AboutWindow()
{
    var AboutWnd = MsgPlus.CreateWnd("Interface.xml", "WndAbout");
}

function detachcurrent(Email)
{
    var WndContacts =  Email.Contacts;
    if(WndContacts.Count == 1)
    {
        var the = new Enumerator(WndContacts);
        var Contact = the.item();
        detachEmail = Contact.email;
        if(closeDetach == true)
        {
            Email.SendMessage("/close");       
        }
    }
    Debug.Trace(detachEmail)
}

function OnEvent_ChatWndDestroyed(Email)
{
    if(DetachDisabled == false)
    {
        var WndContacts =  Email.Contacts;
        if(WndContacts.Count == 1)   
        {
            var the = new Enumerator(WndContacts);
            var Contact = the.item();
            if(detachEmail == Contact.email)
            {
                MsgPlus.AddTimer('detach', 1000);
            }
        }
    }   
}

function OnEvent_Timer(TimerId)
{
    if(TimerId == 'detach')
    {
        OnDTClick(detachEmail);
        Debug.Trace("Detach " + detachEmail);
        detachEmail = "";
        MsgPlus.CancelTimer('detach');
    }
}

function OpenOptions()
{
    var i;
    var contacts;
    contacts = new Enumerator(Messenger.MyContacts);
    var Wnd = MsgPlus.CreateWnd("Interface.xml", "WndOps");
    for (i = 0; !contacts.atEnd(); contacts.moveNext())
    {
        var contact = contacts.item();
        var icon;
        Wnd.LstView_AddItem("emails", "");
        Wnd.LstView_SetItemText("emails", i, 1, MsgPlus.RemoveFormatCodes(contact.Name));
        Wnd.LstView_SetItemText("emails", i, 2, contact.Email);
        lEm = lEm.split(",");
        for (var ii in lEm)
        {
            if (lEm[ii] == contact.Email)
            {
                Wnd.LstView_SetCheckedState("emails", i, true);
            }
        }
        lEm = lEm.join(",");
        switch (contact.Status)
        {
            case s_online:
                icon = "online";
                break;
            case s_offline:
            case s_appearoffline:
                icon = "offline";
                break;
            case s_busy:
            case s_onphone:
                icon = "busy";
                break;
            case s_brb:
            case s_idle:
            case s_away:
            case s_outlunch:
                icon = "away";
                break;
            case s_unknown:
            default:
                icon = "";
                break;
        }
        if (contact.Blocked)
        {
            if (icon != "" && icon != "offline")
            {
                icon = "blocked";
            }
            else
            {
                icon = "blocked-offline";
            }
        }
        if (icon != "")
        {
            Wnd.LstView_SetItemIcon("emails", i, icon, true);
        }
        i++;
    }
}

function fSave(Wnd)
{
    var finish = Wnd.LstView_GetCount("emails");
    lEm = "";
    for (i = 0; i < finish; i++)
    {
        if(Wnd.LstView_GetCheckedState("emails", i))
        {
            if (lEm.substr(lEm.length - 1) != "," && lEm != "")
            {
                lEm += "," + Wnd.LstView_GetItemText("emails", i, 2); + ",";
            }
            else
            {
                lEm += Wnd.LstView_GetItemText("emails", i, 2); + ",";
            }
        }
    }
    closeDetach = Wnd.Button_IsChecked("cbxAutoClose");
    write('emails', lEm.substr(0, lEm.length));
    lEm = read('emails');
    Wnd.Close(1);
}

function read(key)
{
    return Shell.RegRead(MsgPlus.ScriptRegPath + Messenger.MyEmail + "\\" + key);
}

function write(key, value)
{
    Shell.RegWrite(MsgPlus.ScriptRegPath + Messenger.MyEmail + "\\" + key, value);
}

function OnDTClick(Email)
{
    Shell.RegWrite(RegPath, 0,"REG_DWORD");
    Messenger.OpenChat(Email);
    Shell.RegWrite(RegPath, 1,"REG_DWORD");
}

function OnEvent_ContactSignin(Email)
{
    if(DetachDisabled == false)
    {
        TheEmails = lEm.split(",");
   
        if(Email !== Messenger.MyEmail)
        {
            for (var i in TheEmails)
            {
                if (Email == TheEmails[i])
                {
                    MsgPlus.DisplayToastContact("Chat Detached" , Email, "Click to display in a seperate window", "", "OnDTClick", Email,Email );
                }
            }
        }
    }
}

function OnWndOpsEvent_CtrlClicked(Wnd, ControlId)
{
    Debug.Trace(ControlId)
    if (ControlId == "BtnOk")
    {
        fSave(Wnd);
    }
    if (ControlId == "BtnClose")
    {
        Wnd.Close(1);
    }
/*    if (ControlId == "BtnSearch")
    {
        txtSearch = "";
        Search(txtSearch);
    }    */
    if (ControlId == "BtnAbout")
    {
        AboutWindow();
    }
}

function OnWndAboutEvent_CtrlClicked(AboutWnd, ControlId)
{
    if (ControlId == "BtnClose")
    {
        AboutWnd.Close(1);
    }
}

function OnWndTabbedEvent_CtrlClicked(AboutWnd, ControlId)
{
    if (ControlId == "BtnYes")
    {
        Shell.RegWrite(RegPath, 1,"REG_DWORD");
        DetachDisabled = false;
        AboutWnd.Close(1);
    }
    if (ControlId == "BtnNo")
    {
        DispNote = false;
        write("DispNote","false");
        DetachDisabled = true;
        AboutWnd.Close(1);
    }
}

Thanks in advance
[Image: 1714-1.png]
05-17-2009 07:14 AM
Profile E-Mail PM Find Quote Report
« Next Oldest Return to Top Next Newest »

Messages In This Thread
Newest Version of my script doesnt start up - by xXDarknessXx on 05-17-2009 at 07:14 AM
RE: Newest Version of my script doesnt start up - by matty on 05-19-2009 at 12:53 PM
RE: Newest Version of my script doesnt start up - by xXDarknessXx on 05-19-2009 at 02:35 PM
RE: RE: Newest Version of my script doesnt start up - by sno on 05-29-2009 at 10:38 PM
RE: Newest Version of my script doesnt start up - by matty on 05-19-2009 at 04:32 PM


Threaded Mode | Linear Mode
View a Printable Version
Send this Thread to a Friend
Subscribe | Add to Favorites
Rate This Thread:

Forum Jump:

Forum Rules:
You cannot post new threads
You cannot post replies
You cannot post attachments
You can edit your posts
HTML is Off
myCode is On
Smilies are On
[img] Code is On