Shoutbox

Alert(MsgBox in VB) Help? - 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: Alert(MsgBox in VB) Help? (/showthread.php?tid=65206)

Alert(MsgBox in VB) Help? by Hit on 08-21-2006 at 05:48 PM

Somebody know how to do a Yes/No alert or msgbox?
And explain how to use please :D


RE: Alert(MsgBox in VB) Help? by Eljay on 08-21-2006 at 05:58 PM

code:
var result = Interop.Call('user32', 'MessageBoxW', 0, 'Main message text', 'Title text',4);

if yes was selected result will contain 6
if no was selected result will contain 7
RE: Alert(MsgBox in VB) Help? by KnRd_WC on 08-21-2006 at 06:05 PM

Hi Hit !!

To make a Yes/no msgbox, I will use my Basic knowledge to explain it to you ;)

code:
Val=Interop.Call("User32.dll", "MessageBoxW", WndHandle,'Message','Title', Param);

// WndHandle can set to 0 if MsgBox is not attached to a window
// Param :
// 4 = MB_YESNO
//
// 16 = MB_ICONERROR
// 48 = MB_ICONEXCLAMATION
// 32 = MB_ICONQUESTION
// 64 = MB_ICONINFORMATION
//
// So, if you want a Yes/No MsgBox with an error icon, Param=4|16
//
// If Yes button pressed : Val=6
// If No button pressed : Val=7


;)
RE: Alert(MsgBox in VB) Help? by Hit on 08-21-2006 at 06:14 PM

Whoow thx both :D
Fast!
But is it
If( val == 6) Then???


RE: Alert(MsgBox in VB) Help? by KnRd_WC on 08-21-2006 at 06:19 PM

code:
var Val=Interop.Call("User32.dll", "MessageBoxW", 0,"Message","Title", 4|32);

if (Val==6) { // Yes
    // ....
}
else if (Val==7) { // No
    // ....
}

That's your question ? And good answer ?
RE: Alert(MsgBox in VB) Help? by Hit on 08-21-2006 at 06:28 PM

Yes thx it works
One more question you know how to block something sending
So if i type something it wont send if you click no


RE: RE: Alert(MsgBox in VB) Help? by KnRd_WC on 08-21-2006 at 06:34 PM

quote:
Originally posted by Hit
One more question you know how to block something sending
So if i type something it wont send if you click no


If you want to send a message to a contact ??
Maybe I don't understand (I'm French ;)), but... what is "something" ??

For ALL messages
code:
function OnEvent_ChatWndSendMessage(ChatWnd,Message) {
    var Val=Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle,"Message","Title", 4|32);
    if (Val==6) { // Yes
        return Message;
    }
    else if (Val==7) { // No
        return "";
    }
}


For a DEFINED message
code:
function OnEvent_ChatWndSendMessage(ChatWnd,Message) {
    if (Message=="MyMessage") {
        var Val=Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle,"Message","Title", 4|32);
        if (Val==6) { // Yes
            return Message;
        }
        else if (Val==7) { // No
            return "";
        }
    }
return Message;
}


RE: Alert(MsgBox in VB) Help? by Matti on 08-21-2006 at 06:38 PM

You mean, if the user tries to send a message it'll display a box and if the box result is No, it shouldn't send it?
Very easy, just let it return nothing! ;)

code:
} else if(Val == 7) {
   return;
}
If you use that code in the OnEvent_ChatWndSendMessage function (where I guess it is in), it will return nothing. This is because a ChatWndSendMessage event can return a string to the scripts parser telling what message has to be send. ;)
RE: Alert(MsgBox in VB) Help? by Hit on 08-21-2006 at 06:43 PM

thx i finaly done my sure to send project
If i do return;
It still sends if i do return ""; message is gone it most stay there


RE: Alert(MsgBox in VB) Help? by Matti on 08-21-2006 at 06:57 PM

quote:
Originally posted by Hit
thx i finaly done my sure to send project
If i do return;
It still sends if i do return ""; message is gone it most stay there
Hmm, strange. I saw scripts just sending nothing with the return... But if that wouldn't work, I suggested you to use return "" anyway. :P
RE: Alert(MsgBox in VB) Help? by Hit on 08-21-2006 at 07:06 PM

k :(
You may know an option it holds data so
If( Message == "!Sure Off"){
savedata("off")}

If(getdata("off")){
}

You know some option?


RE: Alert(MsgBox in VB) Help? by KnRd_WC on 08-21-2006 at 08:08 PM

quote:
Originally posted by Hit
k :(
You may know an option it holds data so
If( Message == "!Sure Off"){
savedata("off")}

If(getdata("off")){
}

You know some option?

I would like to help you but I don't understand what you say...
Store data into a variable ?? Save data (on registry, for example...) ??
RE: Alert(MsgBox in VB) Help? by Hit on 08-21-2006 at 08:15 PM

I just want to place data some where


RE: Alert(MsgBox in VB) Help? by KnRd_WC on 08-21-2006 at 08:20 PM

Somewhere.... hummm....

code:
// On a variable
Variable = "off"


code:
// On registry
shell=new ActiveXObject("WScript.Shell");
// Store the value
shell.RegWrite(MsgPlus.ScriptRegPath+Messenger.MyUserId+'\\Off',"1");
// Key : HKEY_CURRENT_USER\Software\Patchou\Messenger Plus! Live\GlobalSettings\Scripts\<Script Name>\Settings\<UserID>\
// Name : Off
// Get the value
try {value=shell.RegRead(MsgPlus.ScriptRegPath+Messenger.MyUserId+'\\Off');}
catch(err) {value="0";} // If the key does not exist, value="0"
MsgPlus.DisplayToast("",value); // Verification


RE: RE: Alert(MsgBox in VB) Help? by CookieRevised on 08-22-2006 at 08:00 AM

quote:
Originally posted by Mattike
quote:
Originally posted by Hit
thx i finaly done my sure to send project
If i do return;
It still sends if i do return ""; message is gone it most stay there
Hmm, strange. I saw scripts just sending nothing with the return... But if that wouldn't work, I suggested you to use return "" anyway. :P
returning nothing and returning nothing are two different things (:p)...

If a script wants to change the send text it should do:
    return "change text";

If a script wants to send 'nothing' (mind the quotes; as you do send something: an empty string, that's not nothing). In other words cancel what has been send:
    return "";

If a script wants to do nothing. Thus not cancelling the message, nor changing it:
    return;
(and as such this can be left out in the function too, as a function will return anyways if it ends)


It always has been like this and every script does it like this... ;)

RE: Alert(MsgBox in VB) Help? by KnRd_WC on 08-22-2006 at 10:01 AM

Hi Hit,

I tested your script, and I have a suggestion :

Your script :

code:
function OnEvent_ChatWndSendMessage(ChatWnd,Message) {
    var Val=Interop.Call("User32.dll", "MessageBoxW", 0,"Are you sure, you want to send:" + Message,"Sure?", 4|32);
    if (Val==6) { // Yes
        // ....
    }
    else if (Val==7) { // No
      return "";
    }
}

With your script, when the MsgBox appears, she's not linked to the chat window (I hope that's comprehensible...) So, the chat window is still enable. :S

You should use that :

code:
function OnEvent_ChatWndSendMessage(ChatWnd,Message) {
    var Val=Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle,"Are you sure, you want to send:" + Message,"Sure?", 4|32);
    if (Val==6) { // Yes
        return; // Not compulsory, but for the understanding
    }
    else if (Val==7) { // No
      return "";
    }
}

;)
RE: Alert(MsgBox in VB) Help? by RaceProUK on 08-22-2006 at 10:24 AM

* RaceProUK coughs
var result = confirm("Ask your question here");
* RaceProUK coughs

Edit: Hmm, seems I was looking at an HTML resource. Damn.

Edit 2: Since MsgBox is defined in VBScript, is there a way to get JScript to use it?


RE: Alert(MsgBox in VB) Help? by -dt- on 08-22-2006 at 10:26 AM

quote:
Originally posted by RaceProUK
* RaceProUK coughs
var result = confirm("Ask your question here");
* RaceProUK coughs
* -dt- coughs
Error: 'confirm' is undefined.
       Line: 28. Code: -2146823279
* -dt- coughs
RE: RE: RE: Alert(MsgBox in VB) Help? by Hit on 08-22-2006 at 11:21 AM

quote:
Originally posted by CookieRevised
quote:
Originally posted by Mattike
quote:
Originally posted by Hit
thx i finaly done my sure to send project
If i do return;
It still sends if i do return ""; message is gone it most stay there
Hmm, strange. I saw scripts just sending nothing with the return... But if that wouldn't work, I suggested you to use return "" anyway. :P
returning nothing and returning nothing are two different things (:p)...

If a script wants to change the send text it should do:
    return "change text";

If a script wants to send 'nothing' (mind the quotes; as you do send something: an empty string, that's not nothing). In other words cancel what has been send:
    return "";

If a script wants to do nothing. Thus not cancelling the message, nor changing it:
    return;
(and as such this can be left out in the function too, as a function will return anyways if it ends)


It always has been like this and every script does it like this... ;)



You'r right this is better ill update immidiatly
You can download new version @ the scriptDB now
Its same link
RE: Alert(MsgBox in VB) Help? by CookieRevised on 08-22-2006 at 04:01 PM

With all due respect (so don't get me wrong), but I'm not certain if such scripts should be accepted in the database.

Reason: poorly written. So why not including it:
1) People who know how to script will also know how to do this simple function for themselfs.
2) People who do not know how to script (and want to learn scripting by looking at such simple scripts) will not learn proper formatting their scripts or why something is done, etc...

code:
function OnEvent_ChatWndSendMessage(ChatWnd,Message)
{


var Val=Interop.Call("User32.dll", "MessageBoxW", 0,"Are you sure, you want to send:" + Message,"Sure?", 4|32);

if (Val==6) { // Yes
    // ....
}
else if (Val==7) { // No
  return "";
}

}


Instead of submitting something like the above, submit something like:
code:
function OnEvent_ChatWndSendMessage(ChatWnd, Message)
{
    If (Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle, "Are you sure you want to send:\n" + Message, "Confirm", 36) === 7) return "";
}
Look at the above 1-line script and understand why this can be on one simple line. If you knew this you would have done something like this already and submitted that. If not, this proofs my point that scripts written like yours shouldn't be accepted as they don't teach much (if not teaching bad habits and what not).

---

Or, if you want to submit such a script and teach/help out other people who might want to learn something:
code:
function OnEvent_ChatWndSendMessage(ChatWnd, Message)
{
        // Define constants to make up the message box
        var MB_ICONQUESTION = 32;
        var MB_YESNO = 4;

        // Define constants which can be returned
        var IDYES = 6;
        var IDNO = 7;

        // Show confirmation box
        // Note: We attached the chat window handle (ChatWnd.Handle) to make this message box a child of the chat window.
        //       In that way, you can't use the chat window any further until the message box is answered.
        // Note: We define a YES/NO message box (MB_YESNO) and show a question icon (MB_ICONQUESTION) by binary adding the constants with the OR function.
        var Result = Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle, "Are you sure you want to send:\n" + Message, "Confirm", MB_YESNO | MB_ICONQUESTION);
   
        // Check the returned result
        switch(Result) {
                // User pressed 'yes', so simply return without doing anything
                case IDYES: return;
                // User pressed 'no', so return the new message being an empty string; nothing will be send
                case IDNO: return "";
        }
}
// More info in the MSDN Library:
//http://search.msdn.microsoft.com/search/Redirect.aspx?title=MessageBox+Function&url=http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/messagebox.asp


---

So, I hope you don't take anything of this post offensive. It is just that I sometimes question the stuff in the database (yours was just an example). Although I have no doubt what-so-ever about the good intentions of the creators, the quality is important too.

;)