What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » Scripting » dialog boxes

dialog boxes
Author: Message:
teddytim
Junior Member
**

Avatar
I'm hungry for more!

Posts: 20
44 / Male / –
Joined: Sep 2004
O.P. dialog boxes
is it possible to open up dialog boxes (Open, SaveAs, Choose Folder... etc) using this scripting system?
07-10-2006 01:34 AM
Profile E-Mail PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
RE: dialog boxes
quote:
Originally posted by Matty
This is taken from Choli's Translator, give all credits too him.

code:
    var OFN_ENABLESIZING = 0x800000;
    var OFN_EXPLORER = 0x80000;
    var OFN_FILEMUSTEXIST = 0x1000;
    var OFN_HIDEREADONLY = 0x4;
    var OFN_LONGNAMES = 0x200000;
    var OFN_PATHMUSTEXIST = 0x800;
   
function OnEvent_Initialize(MessengerStart)
{
    var OpenFileName = Interop.Allocate(88);
    var filter;
    var s_filter;
    var file;
    var s_file;
    var title;
    var s_title;
    var ret;
    var tdata;

     with (OpenFileName) {
        WriteDWORD(0, Size); // lStructSize
        WriteDWORD(4, 0); // hwndOwner
        WriteDWORD(8, 0); // hInstance
        filter = "Translation files (Lng_*.ini)|Lng_*.ini|All files (*.*)|*.*||";
        s_filter = Interop.Allocate(2 * (filter.length + 1));
        WriteMultiStringW(s_filter, filter);
        WriteDWORD(12, s_filter.DataPtr); // lpstrFilter
        WriteDWORD(16, 0); // lpstrCustomFilter
        WriteDWORD(20, 0); // nMaxCustomFilter
        WriteDWORD(24, 1); // nFilterIndex
        file = "Lng_*.ini" + Space(256);
        s_file = Interop.Allocate(2 * (file.length + 1));
        s_file.WriteString(0, file);
        WriteDWORD(28, s_file.DataPtr); // lpstrFile
        WriteDWORD(32, file.length); // nMaxFile
        WriteDWORD(36, 0); // lpstrFileTitle
        WriteDWORD(40, 0); // nMaxFileTitle
        WriteDWORD(44, 0); // lpstrInitialDir
        title = "Select original file";
        s_title = Interop.Allocate(2 * (title.length + 1));
        s_title.WriteString(0, title);
        WriteDWORD(48, s_title.DataPtr); // lpstrTitle
        WriteDWORD(52, OFN_ENABLESIZING | OFN_EXPLORER | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST); // flags
        WriteWORD(56, 0); // nFileOffset
        WriteWORD(58, 0); // nFileExtension
        WriteDWORD(60, 0); // lpstrDefExt
        WriteDWORD(64, 0); // lCustData
        WriteDWORD(68, 0); // lpfnHook
        WriteDWORD(72, 0); // lpTemplateName
        WriteDWORD(76, 0); // pvReserved
        WriteDWORD(80, 0); // dwReserved
        WriteDWORD(84, 0); // FlagsEx
    } with OpenFileName
    ret = Interop.Call("comdlg32.dll", "GetOpenFileNameW", OpenFileName);
    if (ret == 0) {
        return;
    }
}
function WriteMultiStringW (datablock, string) {
    var pos = 0;
    datablock.WriteString(0, string);
    pos = string.indexOf("|", pos);
    while (pos != -1) {
        datablock.WriteWORD(2 * pos, 0);
        pos = string.indexOf("|", pos + 1);
    }
}
function Space (number) {
    var i;
    var s = "";
    for (i = 0; i < number; i++) {
        s += " ";
    }
    return s;
}

quote:
Originally posted by Choli
yeah, that's it :P

you can change the filter and put, for example:

"Text files|*.txt|All files|*.*||"

For more help, read this: GetOpenFileName and OPENFILENAME.
07-10-2006 01:43 AM
Profile E-Mail PM Find Quote Report
DeBiese
New Member
*


Posts: 4
42 / Male / –
Joined: Aug 2006
RE: dialog boxes
I tried this code, but i always get 'ret = 1'...

    WriteDWORD(84, 0); // FlagsEx
    } with OpenFileName


I had to remove the with OpenFileName at the end. Otherwise my script wouldn't even start...

Now, can anyone tell me if there's an error on this page?
And if this should work, how do i obtain the path to the file when i click open in the dialog box?


[EDIT]

Never mind i found it:

ret = 0 => Cancel is clicked
ret = 1 => Open is clicked
  var file = s_file.ReadString(0) => the full path to the chosen file

[/EDIT]

This post was edited on 09-13-2006 at 08:09 PM by DeBiese.
09-13-2006 06:10 PM
Profile PM Find Quote Report
Dempsey
Scripting Contest Winner
*****

Avatar
http://AdamDempsey.net

Posts: 2395
Reputation: 53
38 / Male / Flag
Joined: Jul 2003
RE: dialog boxes
Browse for Folder, Pick Font and Pick Colour
SoundPacks   -   Scripts   -   Skins

that's not a bug, thats an unexpected feature
09-13-2006 06:23 PM
Profile E-Mail PM Web Find Quote Report
« 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