Jump to content

XPlode v2.00


Wraith

Recommended Posts

Just thought you people might like to know WHEN I'll be able to do v2.00.

My midsemester break is from 24th September and goes until the 3rd of October.

Hopefully I'll get XPlode done during that timeframe.

I guess we'll have to wait and see how things go...

(I was asked when it was going to happen, so I thought other people might've been curious as well.)

EDIT

Added an attachment for people to test the plugin loading.

Please, if you've had problems with plugins, test this, and check the logs. Specifically the part with:

   Loading plugins {
       Loaded interaction plugin: d:\programming\XPlode2\bin\XPlodeDisplay.xip
         Plugin version: XPlode Example (Non?)Interaction Plugin 2.00
       Loaded effects plugin: d:\programming\XPlode2\bin\XPlodeEffect.xep (plug00)
         Plugin version: XPlode Example Effects Plugin 2.00
   }
   Registering Commands {
       Command: 'monkey' = (plug00.command01)
       Command: 'example' = (plug00.command00)
   }

Make sure that it has plugin versions, and does not say errors. If there ARE errors, then I need to know about them.

xplode2plugtest.zip

Link to comment
Share on other sites


A new XML-maker might be better. The time you'd spend on making an XML importer - do it on making XPlode use as less resources as possible (the animation uses up a lot of CPU time). :P

BTW, thanks for telling that this one's planned for release a month later - otherwise I'd have gone mad with the spurt of new versions today. (winamp, opera, maxthon, nLite.....).

Link to comment
Share on other sites

BTW, thanks for telling that this one's planned for release a month later - otherwise I'd have gone mad with the spurt of new versions today. (winamp, opera, maxthon, nLite.....).

Heh, it might be sooner if my insomnia keeps up ;)

I pretty much finished the "core" XPlode2 exe last night. (Well, this morning.)

I'm bored enough today to keep working on the rest of it, but I doubt it'll be finished by tonight.

As a sidenote, all the NEW plugins are loading fine.

On my computer at least.

We'll see how things go.

EDIT

Just a quick paste of the current SDK 2.00 callbacks - if you want to start writing snippets of code already. These should not change (much) - they do pretty much all I can see that I need them to.

There WILL be a couple of changes, but the current ones probably won't change their definitions. I just have to add the ability for the interaction plugin to execute an "effect".

//////////////////////////////////
// Base callbacks
//////////////////////////////////

// Write text to the logfile
void WriteLog(OUT LPWSTR text);

// Send text/percentage to display plugin
void Display(OUT LPWSTR text, OUT int percentage);

// Retrieve string from the string table in XML
void GetString(OUT LPWSTR name, IN LPWSTR value, OUT DWORD valmax);

// Set an environment variable for use later
void SetEnvironment(OUT LPWSTR name, OUT LPWSTR value);



//////////////////////////////////
// XML  callbacks
//////////////////////////////////

// set certain tag in <display> block (interaction plugin)
// OR
// no effect (effect plugin)
int XMLSetTag(OUT LPWSTR name);

// get an attribute from the currently selected tag in <display> block (interaction plugin)
// OR
// get an attribute from the current effect tag (effect plugin)
int XMLGetAttribute(OUT LPWSTR name, IN LPWSTR value, OUT DWORD valmax);

// get inner text from the currently selected tag in <display> block (interaction plugin)
// OR
// get inner text from the current effect tag (effect plugin)
int XMLGetInnerText(IN LPWSTR value, OUT DWORD valmax);


//////////////////////////////////
// Item  callbacks (interaction plugin only)
//////////////////////////////////

// get the total item block count
int ItemGetItemCount();

// set the item block you want to work with
int ItemSetItem(OUT DWORD id);

// get an attribute value of the currently selected item block
int ItemGetItemAttribute(OUT LPWSTR name, IN LPWSTR value, OUT DWORD valmax);

// get the effect block count within selected item
int ItemGetEffectCount();

// set the effect block you want to work with
int ItemSetEffect(OUT DWORD id);

// get an attribute value of the selected effect block
int ItemGetEffectAttribute(OUT LPWSTR name, IN LPWSTR value, OUT DWORD valmax);

Link to comment
Share on other sites

And a quick example of the XML / logging.

Hopefully you people will get an idea of what's changed.

The new <environment> block, and the <display> block.

The internals of the display block will be dependent on the display plugin you use, so most of the stuff inside that block won't exist any more. (The current XPlode UI will be no more...)

test.zip

Link to comment
Share on other sites

Environment variables {

      %ALLUSERSPROFILE% = 'C:\Documents and Settings\All Users'

will this be dependant on the system itself? meaning if the user changes drive C: to X: will he/she still be able 2 use %allusersprofile% from within xplode (i would assume this is)

regards

Link to comment
Share on other sites

Environment variables {

      %ALLUSERSPROFILE% = 'C:\Documents and Settings\All Users'

will this be dependant on the system itself? meaning if the user changes drive C: to X: will he/she still be able 2 use %allusersprofile% from within xplode (i would assume this is)

regards

It just pulls the available environment variables at runtime.

As it has always done.

Link to comment
Share on other sites

So I guess nobody else wants 2.00 ?

Only me and killerbee gonna use it?

Oh well, if it doesn't work for other people, then you can't complain... you had your chance. :P

Seriously people, has anybody other than killerbee tested it or what?

Link to comment
Share on other sites

ill test it, gimme a sec.. ive been workin alot lately.. havent had 2 much time 2 sit down & browse forums :P

EDIT: My Results

>>> XPlode2 session start at: 04/09/02 01:54:20
XPlode2 {
    Parsing XML: C:\Documents and Settings\Administrator\Desktop\XPlode.xml {
        Environment variables {
            %ALLUSERSPROFILE% = 'C:\Documents and Settings\All Users'
            %APPDATA% = 'C:\Documents and Settings\Administrator\Application Data'
            %CLIENTNAME% = 'Console'
            %COMMONPROGRAMFILES% = 'C:\Program Files\Common Files'
            %COMPUTERNAME% = 'STEVESPC'
            %COMSPEC% = 'C:\WINDOWS\system32\cmd.exe'
            %FP_NO_HOST_CHECK% = 'NO'
            %HOMEDRIVE% = 'C:'
            %HOMEPATH% = '\Documents and Settings\Administrator'
            %LOGONSERVER% = '\\STEVESPC'
            %NUMBER_OF_PROCESSORS% = '1'
            %OS% = 'Windows_NT'
            %PATH% = 'C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ZipGenius 5'
            %PATHEXT% = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH'
            %PROCESSOR_ARCHITECTURE% = 'x86'
            %PROCESSOR_IDENTIFIER% = 'x86 Family 6 Model 6 Stepping 2, AuthenticAMD'
            %PROCESSOR_LEVEL% = '6'
            %PROCESSOR_REVISION% = '0602'
            %PROGRAMFILES% = 'C:\Program Files'
            %PROMPT% = '$P$G'
            %SESSIONNAME% = 'Console'
            %SYSTEMDRIVE% = 'C:'
            %SYSTEMROOT% = 'C:\WINDOWS'
            %TEMP% = 'C:\DOCUME~1\Administrator\Local Settings\Temp'
            %TMP% = 'C:\DOCUME~1\Administrator\Local Settings\Temp'
            %USERDOMAIN% = 'STEVESPC'
            %USERNAME% = 'Administrator'
            %USERPROFILE% = 'C:\Documents and Settings\Administrator'
            %WINDIR% = 'C:\WINDOWS'
            %XPLODE% = 'C:\Documents and Settings\Administrator\Desktop'
            %SOURCEPATH% = 'D:'
            %SOURCEDRIVE% = 'D:'
            %TEST% = 'This is a long **** test of something & something.'
        }
        strings {
            title = 'Post-Install Configuration'
            move = 'Moving #1# (#2#/#3# - #4#)'
            copy = 'Copying #1# (#2#/#3# - #4#)'
            shortcut = 'Adding shortcut: #1#'
            addgroup = 'Adding group #1#'
            adduser = 'Adding user #1#'
            delete = 'Deleting #1# (#3#)'
            complete = 'complete'
            addusertogroup = 'Adding user #1# to group #2#'
        }
        Display module: C:\Documents and Settings\Administrator\Desktop\XPlodeDisplay.xip {
            Display config tag: 'show' {
                after = '2'
                subcount = 'true'
                total = '6'
            }
            Display config tag: 'font' {
                small = '8'
                large = '12'
                antialias = 'false'
                face = 'Tahoma'
            }
            Display config tag: 'window' {
                width = '440'
                position = '8'
                fixmain = '0'
            }
            Display config tag: 'windowmode' {
                mode = 'standalone'
            }
            Display config tag: 'header' {
                image = 'C:\Documents and Settings\Administrator\Desktop\images\head.png'
                back = '#003399'
                fore = '#FFFFFF'
            }
            Display config tag: 'footer' {
                image = 'C:\Documents and Settings\Administrator\Desktop\images\foot.png'
                back = '#003399'
                fore = '#FFFFFF'
            }
            Display config tag: 'progress' {
                fore2 = '#00000033'
                back = '#00000000'
                border = '#FFFFFF'
                fore = '#FFFFFFAA'
            }
            Display config tag: 'main' {
                image = 'C:\Documents and Settings\Administrator\Desktop\main2.png'
                back = '#FF00FF'
                current = '#FFFF00'
                description = '#FFFFFF'
                overlay = '#FFFFFF22'
                fore = '#FFFFFF'
            }
        }
        Items Block {
            Item Block {
                Tag: 'addgroup' {
                    comment = 'It's them bounty hunters!'
                    groupname = 'Cowboy Bebop'
                }
                Tag: 'adduser' {
                    fullname = 'Spike Spiegel'
                    username = 'Spike'
                    groups = 'Administrators "Cowboy Bebop"'
                    password = 'swordfish'
                    comment = 'Don't mess with the best!'
                }
                Tag: 'adduser' {
                    fullname = 'Jet Black'
                    username = 'Jet'
                    groups = '"Cowboy Bebop"'
                    password = 'hammerhead'
                    comment = 'When the Black Dog bites, he don't let go!'
                }
            }
            Item Block {
                Tag: 'execute' {
                    username = 'Spike'
                    arguments = '/s "C:\PostInstall\RegTweak.reg"'
                    password = 'swordfish'
                    program = 'regedit'
                    display = 'Applying tweaks...'
                }
            }
            Item Block {
                Tag: 'shortcut' {
                    workdir = 'C:\'
                    arguments = 'C:\boot.ini'
                    description = 'Notepad Editing C:\boot.ini'
                    link = 'C:\Notepad.lnk'
                    program = 'C:\WINDOWS\System32\Notepad.exe'
                    display = 'Notepad'
                }
            }
            Item Block {
                Tag: 'copy' {
                    target = 'C:\I386'
                    source = 'D:\I386'
                    mask = '*.ac_'
                }
                Tag: 'copy' {
                    target = 'C:\I386\sp1.cab'
                    source = 'D:\I386\sp1.cab'
                }
                Tag: 'move' {
                    target = 'C:\I586'
                    source = 'C:\I386\'
                }
                Tag: 'move' {
                    target = 'C:\I586\sp2.cab'
                    source = 'C:\I586\sp1.cab'
                }
                Tag: 'delete' {
                    source = 'C:\I586'
                    mask = 'm*.ac_'
                }
                Tag: 'delete' {
                    source = 'C:\I586\sp2.cab'
                }
                Tag: 'delete' {
                    source = 'C:\I586'
                }
            }
            Item Block {
                Tag: 'registry' {
                    method = 'write'
                    display = 'Tweaks being installed...'
                }
                Tag: 'registry' {
                    hive = 'HKLM'
                    item = 'Working'
                    method = 'read'
                    variable = 'VOIDFX'
                    key = 'Software\voidFX'
                    display = 'Setting up environment'
                }
                Tag: 'registry' {
                    method = 'write'
                    display = 'Cleaning up...'
                }
            }
        }
    }
    Loading plugins {
        Loaded interaction plugin: C:\Documents and Settings\Administrator\Desktop\XPlodeDisplay.xip
          Plugin version: XPlode Example (Non?)Interaction Plugin 2.00
        Loaded effects plugin: C:\Documents and Settings\Administrator\Desktop\XPlodeEffect.xep (plug00)
          Plugin version: XPlode Example Effects Plugin 2.00
    }
    Registering Commands {
        Command: 'monkey' = (plug00.command01)
        Command: 'example' = (plug00.command00)
    }
    Spawning Interaction Plugin {
         
        Item block, display: 'Adding users and groups...'
        Effect, display: ''
        Execution thread: <addgroup ...> (item00.effect00) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <adduser ...> (item00.effect01) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <adduser ...> (item00.effect02) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
         
        Item block, display: 'Registry Tweaks for Spike'
        Effect, display: 'Applying tweaks...'
        Execution thread: <execute ...> (item01.effect00) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
         
        Item block, display: 'Adding shortcuts'
        Effect, display: 'Notepad'
        Execution thread: <shortcut ...> (item02.effect00) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
         
        Item block, display: 'Copying Post-Installation Files'
        Effect, display: ''
        Execution thread: <copy ...> (item03.effect00) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <copy ...> (item03.effect01) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <move ...> (item03.effect02) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <move ...> (item03.effect03) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <delete ...> (item03.effect04) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <delete ...> (item03.effect05) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: ''
        Execution thread: <delete ...> (item03.effect06) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
         
        Item block, display: 'Registry Tweaks'
        Effect, display: 'Tweaks being installed...'
        Execution thread: <registry ...> (item04.effect00) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: 'Setting up environment'
        Execution thread: <registry ...> (item04.effect01) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
        Effect, display: 'Cleaning up...'
        Execution thread: <registry ...> (item04.effect02) -> (plug--.command--) {
            Command not handled by any existing effects plugins.
        }
    }
    Unloading plugins {
        Unloading: C:\Documents and Settings\Administrator\Desktop\XPlodeEffect.xep
        Unloaded interaction plugin: C:\Documents and Settings\Administrator\Desktop\XPlodeDisplay.xip
    }
}
>>> XPlode2 session end at: 04/09/02 01:54:21

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...