Jump to content

New tool - a PreProcessor


kjactive
 Share

Recommended Posts

Update and bug fix

I discovered a serious bug and made some extensions...

1.Found a serius bug - Beta compile was actually not beta but public if there was an auto buildin of icons ( directory dropped ), found it because the new icons ID related to last beta update - fixed

2.Updated all RunWait to run applications with default working path from applications...

3.Added a RunAs fatal errors catch to all run commands - prevent a crash if failures...

4.Attached a new option to the Tools menu as to be able to run sites from the inet as a color scheme page ec...

5.Wrote a new example script and attached it to the zip archive - Upx Pad, actually working application...

Download zip from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

Or wait on the miner auto update...

Note: The latest beta update will ruin the examples, as icon ID has changed...

kjactive :">

Edited by kjactive
Link to comment
Share on other sites

I tumblet over a bug and made some small changes

1.Bug fix - Found a seldom compile model bug that in some conditions could exchange stubs - fixed...

2.Attached some Beta / public messages and warnings related to the a3x filetype changes....

3.Attached a control in the about window to toggle autoit3 between Public and Beta default model - controls the script run ec.

Note of warning:

The Project Manager is independent of current autoit3 model - beta / public ( relate to Preprocess, run scripts and do compiles ) but the beta update 3.2.5.2 made some changes to the stubs that get included, this makes the a3x wrapped scripts very depended of what model that autoit3 currently uses as default ( as a3x still use the current beta / public intepretter to run ) and if this is not matching or later get changed with the toggle script in extras directory, your .a3x scripts wount run and display error messages...

I think that the Beta system should be backwards compatible and hope they'll be

download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

or wait for the auto update

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

  • 2 weeks later...

Update 3.2.2.0

1.bug fix - Hit the amound limit for Macros and Tools menu items to soon, max to both is now 24 menu items - fixed...

2.Attached an option to put sepparators into the Tools menu column ( not available to the macro menu as these are automatically attached )

3.Reorginized and changed some graphics ( only full update )

4.attached F1 help system to the language Translation Editer ( only full update )

5.Attached interface with SciTe output console - Project Manager writes fatale ( only ) error messages into scite like if au3check returns failures from the Preprocessed script - please remove 'command.quiet' in scite user directive

6.Bug fix - Public / beta text was not right in the 'compile with options' window if changed durring the process - fixed...

7.New Macro Command - TextToSciTe a variant to Text, difference - display the $sStr into SciTe output window and not into Project Manager infoline...

8.Bug fix - All Project Managers requesters ( PreProcess and Open Project ec. ) path was not updated correctly - fixed...

9.Attached preset variables to the tools menu %in% ( in script ), %pre% ( Preprocessed script ) and %exe% ( the last compiled execute ) - these variables get replaced with internal values...

10.Changed the compile 'Run after' preset variable %out% to %exe% as to get some syntax standard in here - replaced with the compiled execute path...

11.Attached the preset variable %exe% to the macro command RunWait, can be used to replace of RunExe macro command but this has an error handle process included...

12.Attached a new preset variable to the tools menu %tools% - exchange with the tools.txt path, Notepad.exe %tools% could come in handy to edit tools menu script directly from the tools menu...

13.Bug fix - The internal compress function ruined the compile with console output model - fixed ( still only stdout )

Download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

Or wait for the auto update to notify

Note: the last Autoit3 updates 'public as beta' is now .a3x filetype compatible

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

I found serious bug in your latest 3.2.2.0 version:

When used #Include "zz_include.au3" - with "" instead of <> then constants are not added to output _pre script:

Note: functions are added corectly only contants not

zz.au3

#include <GUIConstants.au3>
#include <GuiListView.au3>
#Include <File.au3>
#Include <Array.au3>
#include <Misc.au3>
#Include "zz_include.au3"

GUICreate("My GUI")
$dt_datum_od = GUICtrlCreateDate("",10, 10, 82, 21, $DTS_SHORTDATEFORMAT)
GuiCtrlSendMsg($dt_datum_od, $DTM_SETFORMAT, 0, "dd.MM.yyyy")
GUISetState (@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend

Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
EndFunc

zz_include.au3

Global Const $WM_NOTIFY = 0x004E
Global Const $DTM_SETFORMAT = 0x1005
Edited by Zedna
Link to comment
Share on other sites

Another problem:

#AutoIt3Wrapper directives are not treated correctly (through AutoIt3Wrapper.exe)

Try this:

#AutoIt3Wrapper_Icon=app_icon.ico
#AutoIt3Wrapper_useupx=n
#AutoIt3Wrapper_run_after=ResHacker.exe -add %out%, %out%, icons.res ,,,
#AutoIt3Wrapper_run_after=upx.exe --compress-icons=0 "%out%"

There are no icons in output compiled script.

I must open _pre script in Scite and compile it from Scite to have all icons included.

Link to comment
Share on other sites

Another problem:

When I have #include <GuiListView.au3> then $LVI_MASK and $LVITEM constants are added to _pre script twice.

I'm using Autoit 3.2.6.0 release

Source:

#include <GuiListView.au3>
#include <GUIConstants.au3>

GUICreate("Test", 300, 200)
GUISetState (@SW_SHOW)

$a = $LVI_MASK
$b = $LVITEM

While 1
    $msg = GuiGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            Exit
    EndSelect
WEnd

output _pre:

Global Enum $LVI_MASK  =  1, $LVI_IITEM, $LVI_ISUBITEM, $LVI_STATE, $LVI_STATEMASK, $LVI_PSZTEXT, $LVI_CCHTEXTMAX, $LVI_IIMAGE, $LVI_LPARAM, $LVI_IINDENT
Global Const $LVITEM  =  "int;int;int;int;int;ptr;int;int;int;int"
Global Const $GUI_EVENT_CLOSE  =  -3
Global Enum $LVI_MASK  =  1, $LVI_IITEM, $LVI_ISUBITEM, $LVI_STATE, $LVI_STATEMASK, $LVI_PSZTEXT, $LVI_CCHTEXTMAX, $LVI_IIMAGE, $LVI_LPARAM, $LVI_IINDENT
Global Const $LVITEM  =  "int;int;int;int;int;ptr;int;int;int;int"
GUICreate("Test", 300, 200)
GUISetState (@SW_SHOW)
$a = $LVI_MASK
$b = $LVITEM
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Link to comment
Share on other sites

Well Zedna - It was almost as I suspected, New rev. 3.2.2.1

1.Bug fix - Project Manager didn't treated local UDFs path correctly - fixed

That did the trick with missing variables ec., but as I use different setups, I always write a full paths here, then I don't have to include my own UDFs both in public as in the beta system...

2.Bug fix - Variables could in seldom cases be attached twice in the temporary variable list - fixed

Now that was a nasty one, you used the variables right in the beginning of your script and PM took this as new variables and included these into the temporary list of all variables available twice...

3.Bug fix - Scan process could not be changed from low to high - for use only if trouble but fixed

Note - newer use Hign mode as it reverses the Global variable list too, use only in seldom cases...

The interfase with autoitwrapper directives was how ever NOT a bug but PM did what it was supposed to do ( PreProcess action 'Remove Compile direcive' ) as these and the #region keywords are of no use if Compiled with the PM internal compile function but autoitwrapper works fine and is fully supported...

Thanks for you nice documented reports, that realy helped...

Download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

or wait for the auto update to trick

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

One BIG problem wit Production/beta compile

I have in my Scite Tools menu added these two menu items:

Project Manager - compile production

Project Manager - compile beta

But with your new version it ignores /p and /b commandline parametres

and always uses setting from Options.

Here is related part from my au3.properties:

# 38 Include The Project Manager - a excerpts library manager by ©by Kare Johansson

command.38.*.au3=$(autoit3dir)\Extras\Project Manager\Project Manager.exe /in "$(FilePath)" /p

command.subsystem.38.*.au3=1

command.name.38.*.au3=Project Manager - compile production

command.save.before.38.*.au3=1

command.replace.selection.38.*.au3=0

command.quiet.38.*.au3=1

# 39 Include The Project Manager - a excerpts library manager by ©by Kare Johansson

command.39.*.au3=$(autoit3dir)\Extras\Project Manager\Project Manager.exe /in "$(FilePath)" /b

command.subsystem.39.*.au3=1

command.name.39.*.au3=Project Manager - compile beta

command.save.before.39.*.au3=1

command.replace.selection.39.*.au3=0

command.quiet.39.*.au3=1

This is very BAD change! :)

Please can you bring back these commandline parametres?

Thanks

Edited by Zedna
Link to comment
Share on other sites

Hallo Zedna

Happy to hear that the bugs are gone...

Only #AutoIt3Wrapper directives are not treaed well.

I think you should run AutoIt3Wrapper.exe instead of Aut2Exe.exe if you find #AutoIt3Wrapper directives in script (or better always).

I just deep checked this and there was no trouble with autoitwrapper run or compile BUT I think that in your case the preferences setting 'Mode' was not set to wrapper but to internal - This options toggles between the Project manager internal Compile and correctly use autoit3.exe as testing while the wrapper parameter use autoitwrapper_Gui to compile and autoitwrapper.exe to testing ( #directives included ) BUT then you have to use the control 'Compile' or Compile Pass menu in the main window - Project Manager do not use directives but use a makefile system uniqe to every scripts. The Compile with Options window always use the Project Manager internal compile system...

Project manager implicitly overrides default output EXE version info (in EXE's resources).

I think it shouldn't be doing that or at least make some option to disable this behaviour.

Do not use Compile with options but the semilare autoitwrapper intuition, activated from the control 'Compile' or Compile Pass menu and be certain that the Preferences 'mode' parameter is set to Wrapper then the only way to use The Project Manager compile system is to force it with 'Compile with options' window and no changes is made to the icons information ec.

But with your new version it ignores /p and /b commandline parametres

and always uses setting from Options.

I just tested this part and the project manager system do change from beta to public /verse, I can't quiet get what can be wrong here BUT one thing you can do is to remove the 'command.quiet.' lines in the au3.Properties and you get information in SciTE on system and process, au3Check will display error messages if something is not right in the preprocessed script too, I'll look into this /p /b argument a little more but it do trick at my PM system from beta to public alright.

One thing with the Project Manager is that it is a tool that can do a lot of things with the same script in one process that one has to think little about, like to use autoitwrapper and remove the #directives is not wise. Do a compare on different modes and models with just a click on a few controls - a macro script can actually in one session make two or more preprocessed scrips and do a lot of different compile models, beta verse public, with different icons and compression setups BUT one has to think a little on what this masive tool actually has to do and not just use it as a pass on - I think anyway!

One thing as big difference between autoit3wrapper and the Project Manager is that the wrapper use the native autoit3 system model and if this is set to public or beta that's it BUT the Project Manager is independed and can work between the systems....

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

Update to rev. 3.2.2.2

1.Changed the compile system ( Internal / Wrapper modes ) to be absolutely and controlled by the Preferences setting, related to compile, testing and Compile With Options....

2.Attached a tooltip notification to the compile and test controls on what mode these two controls currently use ( Internal or wrapper )

3.Optimized speed - well a little anyway...

4.Bug fix - If the Preprocess action 'remove space around operators' was on the 'Step' and 'Return' commands could be treated wrong - fixed

5. Wrote some macro scripts to interact with SciTE macro system - Build and Compile ( only full update )

6.Attached a Project Manager lite application 'Go.exe' ( Console type only - placed in Projects directory ) this can do most of the processes like test, compile and automatically buildin icons just like the Project manager but without the intuitions and preprocess actions - look into 'Go - Project Manager Lite' in the topics ( only full update )...

Download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

Update to rev. 3.2.2.3

1.Bug fix - The remove around operators preprocess action was treaten return _function() wrong - fixed

2.Optimized the remove around operators function

3.Moved the CompileTo entry control from preferences to compile with options intuition - logical I think

4.Removed the Decompile system from the Compile process, intuition included as this option is no longer available

5.Changed all subwindow into Tools types

6.Bug Fix - If autoitwrapper is not available and preferences is set to this tool - a auto switch to the PM internal mode is done - fixed

7.Optimized speed and Process text to Project Manager Lite ( Go.exe - located in Projects directory )

8.Bug fix - Project Manager Lite ( Go.exe ) didn't treated .a3x filetype right when compiled to different location - fixed

Download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

or wait for auto update to trick ( Project Manager Lite included )

kjactive :)

Link to comment
Share on other sites

Hallo Wooltown

Sorry to hear, first the Project Manager store settings in HKEY_CURRENT_USER\Software\Au3PreProcess\Prefs\... but most of these get overruled by the local scripts makefile if available and preferences settings is local - Note preferences settings do only get saved as default if Save preferences at exit ( Preferences ) is on

But Project Manager make use of autoit3 and SciTe settings as well and I had some trouble here durring a full autoit3 update

but the trouble desapeared when I ran Toggle AU3 Beta.au3 from extras directory, The same goes with Project Manager Lite ( Go.exe ) but this has no internal settings saved...

Both applications has source attached and the settings is done at the start of the scripts...

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

  • 2 weeks later...

Just a small update to rev. 3.2.2.4

1.Add an option to Project Manager Lite ( Go.exe ) /Check keyword - set error break levels pass to au3Check as to be able to control the break point, example: ( /Check 1 ) - break process solo on returned error(s)

2.Add an option to Project Manager preferences - include / exclude the automatic au3check process on the preprocessed script...

3.Bug fix - User excluded functions call from within a subscript ( UDF ) would still include the actual function but not the call line - fixed...

4.bug fix - Updated process speed as left some error checking points out...

Download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

Or wait for the smaller auto update...

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

  • 3 weeks later...

New update to rev. 3.2.2.5

1.Add a new Buildin but Exclude UDF preprocess option ( a new keyword: (***) ) buildin the UDF as a function called from the #Include spot, this UDF will not be changed in any manner, just buildin - nice feature to included texts or variable initiations...

2.Optimized the error handle process to leave 'check for errors' in the whole process - this is now last in process as an option...

3.Add a change on errorhandle if the (*), (**) and (***) keywords is present in the script this overrule error checking as there is that many options to missbehave in the errorhandle process...

4.Updated the Logbook to deal with the new exclude keyword and the new option to exclude au3check in preferences...

5.Bug fix -Project Manager internal error handle was a little to keen - removed check on available functions, they are always there anyway - this did speedup preprocess too...

6.Bug fix - Preprocess buildin globals failed on variables that pointed to initiated arrays - fixed...

7.Bug fix - The Internal compile function could fail in some conditions if the temorary directory was not present - fixed...

8.Removed .aut as a valid script type both to the #includes as to the script preprocessed ( only .au3 is valid script type ) - speedup the process...

9.Optimized the search speed for #includes used in sub UDFs a lot...

10.ReMoved the preferences option to increase the scan process - this option was of no real use...

11.Optimized the Project Manager speed overall a lot - as the application is now preprocessed with option 'remove around operators' too...

12. Optimized Go.exe speed in same manner too...

13.Bug fix - Project Manager Lite ( Go.exe ) could in some conditions fail on change resource description in the compiled attached icon - fixed...

14.Bug Fix - Some processed constants was not catched by the preprocess handle - fixed...

Project Manager Lite ( Console only) application is included as a projects example in the directory with code...

Go.exe has the same abbility as Project Manager, to Test scripts, check for errors, Compile with automatic

buildin icons from directory in different modes and models but what is the difference then - the abbility to

buildin all code, all the preprocess processes and a intuition. Both applications can be treated as SciTE macro

tools...

Please copy the file Go.exe to autoit3 default directory and lookup Go - Project Manager Lite in the Project

manager tropics...

Download from site:

http://www.sitecenter.dk/latenight/nss-fol...t%20Manager.zip

Or wait for the smaller auto update to tricker

kjactive :)

Edited by kjactive
Link to comment
Share on other sites

I have a small req for the auto-updating.

1. Would it be better to launch a small sep app to take care of the whole auto-update procedure at the startup of PM. The reason that I ask is that I always have the autoupdate on and when starting the PM, it is unresponsive until it checks to see if there is an update avail which gets kinda annoying. The update app would check and see if there is an update, and then notify PM to just display a message that there is an update avail, and maybe by clicking the >> button at the bottom, would then continue the updating process. With having a second app doing the checking, leaves PM able to operate w/o that whole wait till I check for an update, and after I'm done then maybe decide to do the update knowing that there is one avail.

I have a config utility that I have made that works as described above, that way the user is notified either way by a label and it doesn't effect what they are currently doing. I simply use the window copydata messages for the communication between the two. I even when to the extreme and have a button that lists the changes (like you do in this thread) in a messagebox to help the user decide if the update is really nessary right now w/o even having to go either their email or here to see what the update added/fixed.

Edited by AMD
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
 Share

  • Recently Browsing   0 members

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