What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » Scripting » MsgPlus.ScriptRegPath| Problem :(

Pages: (2): « First [ 1 ] 2 » Last »
MsgPlus.ScriptRegPath| Problem :(
Author: Message:
m0nst3rkill3r
Junior Member
**

Avatar

Posts: 51
Joined: Sep 2009
O.P. MsgPlus.ScriptRegPath| Problem :(
Hey.
I use the registry of windows in my Script, but if i use
"MsgPlus.ScriptRegPath + Messenger.MyUserId"
I get unknown Error.
After i open the script and save it, it works :/
please help me :D
09-18-2009 11:49 AM
Profile E-Mail PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
RE: MsgPlus.ScriptRegPath| Problem :(
Post the code so we can see where you are going wrong.

It is likely that you are using Messenger.MyUserId when it is not initialized therefore causing errors.

To combat issues with such events occuring this is what I do:

Javascript code:
function OnEvent_Initialize ( ) {
    if ( Messenger.MyStatus < STATUS_INVISIBILE ) return false;
    /*
        Do stuff here like read the registry etc.
        If we make it past the first line in this function than the user
        we know is signed in.
    */

}
 
function OnEvent_SigninReady ( sEmail ) {
    OnEvent_Initialize (  );
}


This post was edited on 09-18-2009 at 12:37 PM by matty.
09-18-2009 12:35 PM
Profile E-Mail PM Find Quote Report
m0nst3rkill3r
Junior Member
**

Avatar

Posts: 51
Joined: Sep 2009
O.P. RE: MsgPlus.ScriptRegPath| Problem :(
Heyho.
code:
var regPath;
function OnEvent_Initialize(MessengerStart){
regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
}

function loadsettings(){
twittername = Shell.RegRead(regPath + Messenger.MyUserId +  "\\twitterusername");
twittertimer= Shell.RegRead(regPath +  "\\twittertimer");






Okay. I edited my script :

code:
var regPath;
var twitterusername;
var twittername;
var twittertimer;

function OnEvent_Initialize ( ) {
   
    if ( Messenger.MyStatus < STATUS_INVISIBILE ) return false;
    regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
    if (twittertimer === 0){
    return false;
}
loadsettings();
MsgPlus.AddTimer("nextUpdate", twittertimer*60*1000);
}
function OnEvent_SigninReady ( sEmail ) {
    OnEvent_Initialize (  );
}

function loadsettings(){
twittername = Shell.RegRead(regPath  +  "\\twitterusername");
twittertimer= Shell.RegRead(regPath  +  "\\twittertimer");
}


does not work either

This post was edited on 09-18-2009 at 02:28 PM by m0nst3rkill3r.
09-18-2009 02:16 PM
Profile E-Mail PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
RE: MsgPlus.ScriptRegPath| Problem :(
Javascript code:
var regPath;
var twitterusername;
var twittername;
var twittertimer;
 
function OnEvent_Initialize ( )
{
    if ( Messenger.MyStatus < STATUS_INVISIBILE ) return false;
 
    regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
    /*
        this will never work and will always return false.
        Firstly: twittertimer is undefined. You have not assigned a value to it yet.
        Secondly load settings  is called after the check which will never get called because of the above statement
        Thirdly you are performing a bitwise comparison which means the types and value have to match.
        In this instance because WScript.Shell has no knowledge of different variable types it is loaded as a string.
        A string and a number do not match regardless if it is "0" and 0 because their types are different.
        Forthly is this the entire script? If so Shell is not declared anywhere...
    */

    if (twittertimer === 0) return false;
   
    loadsettings();
    MsgPlus.AddTimer("nextUpdate", twittertimer*60*1000);
}
 
function OnEvent_SigninReady ( sEmail ) {
    OnEvent_Initialize (  );
}
 
function loadsettings(){
    twittername = Shell.RegRead(regPath  +  "\\twitterusername");
    twittertimer= Shell.RegRead(regPath  +  "\\twittertimer");
}


I will post an update in a moment which should work.

Javascript code:
var twitterusername;
var twittername;
var twittertimer;
 
function OnEvent_Initialize ( )
{
    if ( Messenger.MyStatus < STATUS_INVISIBILE ) return false;
    loadsettings();  
    if ( twittertimer == 0 ) return false;
    MsgPlus.AddTimer( 'nextUpdate', twittertimer*60*1000 );
}
 
function OnEvent_SigninReady ( sEmail )
{
    OnEvent_Initialize (  );
}
 
function loadsettings ( )
{
    var Shell = new ActiveXObject ( 'WScript.Shell' );
    var regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
   
    twittername = Shell.RegRead(regPath  +  '\\twitterusername');
    twittertimer = Shell.RegRead(regPath  +  '\\twittertimer');
}


This post was edited on 09-18-2009 at 02:39 PM by matty.
09-18-2009 02:36 PM
Profile E-Mail PM Find Quote Report
m0nst3rkill3r
Junior Member
**

Avatar

Posts: 51
Joined: Sep 2009
O.P. RE: MsgPlus.ScriptRegPath| Problem :(
Hey.
Shell is defined above with
Javascript code:
var Shell=new ActiveXObject("WScript.Shell");

The "Twittertimer if" i cutted out for some minutes.


/edit:
Like a chat here :D

Okay. I'll try it.


/edit:

Does not work either.

Skript wird gestartet
Skript wurde geladen und ist bereit
Aufgerufene Funktion: OnEvent_Initialize
Fehler: unbekannt (Code: -2147418113)
       Datei: I Love Twitter.js. Zeile: 91.
Funktion OnEvent_Initialize meldete einen Fehler. Code: -2147352567
Aufgerufene Funktion: OnEvent_SigninReady
Aufgerufene Funktion: OnGetScriptMenu
the 91 isue is the regPath part.

my fully code:
Javascript code:
var twitterusername;
var twittername;
var twittertimer;
var Shell=new ActiveXObject("WScript.Shell");
 
function OnEvent_Initialize ( )
{
    if ( Messenger.MyStatus < STATUS_INVISIBILE ) return false;
    loadsettings();  
    if ( twittertimer == 0 ) return false;
    MsgPlus.AddTimer( 'nextUpdate', twittertimer*60*1000 );
}
 
function OnEvent_SigninReady ( sEmail ) {
    OnEvent_Initialize (  );
}
 
function loadsettings ( )
{
    var regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
    twittername = Shell.RegRead(regPath  +  '\\twitterusername');
    twittertimer = Shell.RegRead(regPath  +  '\\twittertimer');
}


This post was edited on 09-18-2009 at 02:49 PM by m0nst3rkill3r.
09-18-2009 02:42 PM
Profile E-Mail PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
RE: MsgPlus.ScriptRegPath| Problem :(
That cannot be all of your code because you don't have 91 lines... post all of the code and we can help.
09-18-2009 02:56 PM
Profile E-Mail PM Find Quote Report
m0nst3rkill3r
Junior Member
**

Avatar

Posts: 51
Joined: Sep 2009
O.P. RE: MsgPlus.ScriptRegPath| Problem :(
Javascript code:
var username = "p3acemak3r";
var settings;
//savesettings();
var twitterusername;
var twittername;
var twittertimer;
var Shell=new ActiveXObject("WScript.Shell");
 
 
 
//var fileread = new ActiveXObject  ( 'Scripting.FileSystemObject' ).OpenTextFile ( "c:\\twitter.txt" , 1 ).ReadAll ( );
 
function OnEvent_Initialize ( )
{
    if ( Messenger.MyStatus < STATUS_INVISIBILE ) return false;
    loadsettings();  
    if ( twittertimer == 0 ) return false;
    MsgPlus.AddTimer( 'nextUpdate', twittertimer*60*1000 );
}
 
function OnEvent_SigninReady ( sEmail ) {
    OnEvent_Initialize (  );
}
 
 
 
function OnGetScriptCommands()
{
    var ScriptCommands = "<ScriptCommands>";
    ScriptCommands    +=     "<Command>";
    ScriptCommands    +=         "<Name>tweet</Name>";
    ScriptCommands    +=         "<Description>Tweet</Description>";
    ScriptCommands    +=     "</Command>";
    ScriptCommands    += "</ScriptCommands>";
 
    return ScriptCommands;
}
 
 
function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}
 
function OnEvent_ChatWndSendMessage(ChatWnd, Message)
{
    if (Message.toLowerCase() == "/tweet"){
        loadsettings();
        getTwitterStatusFromXML ( "http://www.twitter.com/status/user_timeline/"+twittername+".xml" );
        return "";
        }
 
}
function OnEvent_MyPsmChange(NewPsm){
    if (NewPsm.toLowerCase() === "/tweet"){
        loadsettings();
        getTwitterStatusFromXML ( "http://www.twitter.com/status/user_timeline/"+twittername+".xml" );
        return true
    }
}
 
 
function getTwitterStatusFromXML ( url )
{
    var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    var xmldom = new ActiveXObject('Microsoft.XMLDOM');
 
    xmldom.async = true;
    xmlhttp.open('GET', url, true);
 
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState === 4 && xmlhttp.status === 200 )
        {
            xmldom.loadXML ( xmlhttp.responseText );
            Debug.Trace (  xmldom.selectSingleNode ( '//statuses/status/text' ).text );
              Messenger.MyPersonalMessage = xmldom.selectSingleNode ( '//statuses/status/text' ).text;
              MsgPlus.DisplayToast("Personal Message: ", xmldom.selectSingleNode ( '//statuses/status/text' ).text);
        }
    }
    xmlhttp.send();
}
 
 
function loadsettings ( )
{
    var regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
    twittername = Shell.RegRead(regPath  +  '\\twitterusername');
    twittertimer = Shell.RegRead(regPath  +  '\\twittertimer');
}
function savesettings(){
    var regPath = MsgPlus.ScriptRegPath + Messenger.MyUserId;
Shell.RegWrite(regPath  + "\\twitterusername", settings.GetControlText("username"));
Shell.RegWrite(regPath  + "\\twittertimer", settings.GetControlText("timer"));
}
 
function OnGetScriptMenu(){
    var myMenu = new PlusMenu;
    myMenu.addItem("Settings", "Settings");
    return myMenu.build();
}
 
function OnEvent_MenuClicked(sMenuId){
    if(sMenuId=="Settings"){
        loadsettings();
        OpenSettings();
       
    }
}
function OnEvent_Initialize(MessengerStart){
loadsettings();
 
}
function OpenSettings(){
    settings = MsgPlus.CreateWnd("winsettings.xml", "settings");
    settings.SetControlText("username", twittername);
    settings.SetControlText("timer", twittertimer);
}
function OnEvent_Uninitialize(MessengerExit){
if (twittertimer === 0){
return false;
}
MsgPlus.AddTimer("nextUpdate", twittertimer*60*1000);
}
function OnEvent_Timer(nextUpdate){
getTwitterStatusFromXML ( "http://www.twitter.com/status/user_timeline/"+twittername+".xml" );
}
function OnSettingsEvent_CtrlClicked(PlusWnd, ControlId) {
switch(ControlId) {
        default:
       
        break;
       
        case "settings_buttonSave":
            savesettings();
        break;
    }
}

09-18-2009 02:58 PM
Profile E-Mail PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
RE: MsgPlus.ScriptRegPath| Problem :(
First things first you have OnEvent_Initialize defined twice.
09-18-2009 03:05 PM
Profile E-Mail PM Find Quote Report
m0nst3rkill3r
Junior Member
**

Avatar

Posts: 51
Joined: Sep 2009
O.P. RE: MsgPlus.ScriptRegPath| Problem :(
Ooookay.
Now my "right" function works now.
Now i get :"Fehler: 'STATUS_INVISIBILE' ist undefiniert "
09-18-2009 03:07 PM
Profile E-Mail PM Find Quote Report
Matti
Elite Member
*****

Avatar
Script Developer and Helper

Posts: 1646
Reputation: 39
31 / Male / Flag
Joined: Apr 2004
RE: MsgPlus.ScriptRegPath| Problem :(
Ahaha, that's a typo. :D Try STATUS_INVISIBLE instead:
Javascript code:
function OnEvent_Initialize ( )
{
    if ( Messenger.MyStatus < STATUS_INVISIBLE ) return false;
    // etc...


This post was edited on 09-18-2009 at 03:35 PM by Matti.
Plus! Script Developer | Plus! Beta Tester | Creator of Countdown Live | Co-developer of Screenshot Sender 5

Found my post useful? Rate me!
09-18-2009 03:34 PM
Profile E-Mail PM Web Find Quote Report
Pages: (2): « First [ 1 ] 2 » Last »
« Next Oldest Return to Top Next Newest »


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