View Full Version : TOOL : Action Plugin Compiler
reteset
06-30-2009, 12:16 PM
Here is my tool that i mentioned before
Features :
Creates stable and powerful action plugins
Creates fast plugins that are compatible with all Windows releases (newer than Win98)
Encrypts the Lua source of plugins
Supports UPX compression
Supports one click plugin install
Supports saving projects and load for next time
Supports set your own Plugin name, Plugin Version and Author Info fields
Notes :
This Is A Beta Version
Please Wait Until A Stable Version Before Use Any Plugin That Is Created By This Program
A Simple Help File Generator Will Be Added To stable Version
Please Read The Licence With Care On First Program StartUp (you will see it only once)
Download : Click Here (http://www.amsplugins.com/details.asp?ID=82&CID=4)
ScreenShot : Click Here (http://www.amsplugins.com/screenshots/ActionPluginCompiler.jpg)
ShadowUK
06-30-2009, 01:12 PM
FIRST POST.
How much to donate to make commercial plugins?
Centauri Soldier
06-30-2009, 01:36 PM
Yes! You rock reteset! :D:yes:yes:yes
MicroByte
06-30-2009, 02:41 PM
ok, i'll compair it to mine and see how it fairs, but be warned, im a sore loser! :p lol
kidding, nice work reteset, i'll beta the life out of it.
would it be possible to embed a dll as a extra resource and unpack it to the plugin dir if its not found, so the plugin system can wrap a dll+lua+xml into a lmd
i use lots of dll files in AMS, it would be nice to consolidate the working files for each dll into a plugin
and what is the minimum donation for commercial plugins, all mine will be free, always will be, but im curious.
rexzooly
06-30-2009, 02:52 PM
Looks bloody great :yes very sexy looking lol wonder if i could put it to use with
making a plugin ,,, mostly not lol.
Looks great tho.:yes
MicroByte
06-30-2009, 05:28 PM
looking pretty good, compiled a few small plugins and all is working fine, but i do notice there's no input for the help file, even with small plugins that are shipped around our office i still write help files for them and like them to react to the action editor.
no need to add action name support, just to be able to open the help file would be nice.
MicroByte
06-30-2009, 05:38 PM
1 small issue, when loading a saved project, only the first line of the author text is displayed in the author input, if text on a new line is entered, it appears to display ok in AMS but does not seem to be saved/loaded to project file.
reteset
07-01-2009, 11:31 AM
1 small issue, when loading a saved project, only the first line of the author text is displayed in the author input, if text on a new line is entered, it appears to display ok in AMS but does not seem to be saved/loaded to project file.
thank you i'll fix it
i do notice there's no input for the help file, even with small plugins that are shipped around our office i still write help files for them and like them to react to the action editor.
no need to add action name support, just to be able to open the help file would be nice.
i did not add a field for help file because i was going to add a simple help file generator , all will be automated ,just you will need to edit some parts of output html help file (return values ect.)
i could not finish that part of the program and decided add it to stable version
if you read Notes section of my first post you will see that i mentioned about it
also action name is provided by plugin SDK you just need to concat action name a and helpfile , this is done by plugin already
current plugin does something lile below
help.html#MyAction.MyFunction
this points to a field in your help file
would it be possible to embed a dll as a extra resource and unpack it to the plugin dir if its not found, so the plugin system can wrap a dll+lua+xml into a lmd
yes it is possible , you can import any type of files into plugin
and export them with a buil-in action when you need
but some antivirus softwares may alert user , like : this application makes a hidden install , but not sure at all ,
but this will be a good addition to program and i am going to add this feature
also the PluginSDK has a dependencies feature , so
when you add a sdk function to plugin AMS asks for ,are there any files that this plugin needs and if you return a file name array AMS moves those files in to Project's plugins folder with the main plugin ,
in this case you need to put your dll or other files in to plugin installition folder and tell AMS these files will be moved project with the plugin
and AMS moves all files along with the main plugin when you preview or build application
How much to donate to make commercial plugins?
i am going to write a detailed licence for stable version
this will clear all relevant questions
and if you like this program and think this program deserves a donation
you can make any amount of donation ,this will keep this program always updated
and thanks for the all nice comments
Imagine Programming
07-01-2009, 02:23 PM
Woah I'm late! Very nice, amazing work reteset. I like it alot hehe.
*Flushing the toilet on exit LOL
MicroByte
07-01-2009, 02:31 PM
well its already a very useful tool, with the updates you propose i think its worth a small slice of any AMS users paycheck, cant wait for the release
Centauri Soldier
07-02-2009, 12:21 PM
Hey Reteset, could you add command line options to this tool? It would be nice if we could compile from the command line.
reteset
07-03-2009, 02:28 PM
Hey Reteset, could you add command line options to this tool? It would be nice if we could compile from the command line.
no i do not think for now
but this program based on a DLL so all compile task done by that DLL ActionPluginCompiler.dll
maybe i can share that DLL with some friends but this program should be finished first , and then i'll make a decision
also maybe i can make an action plugin that makes something
but with a simplest way
actually , i was thinking to make a plugin that allows you to compile your Lua
code into a LMD and run it in runtime , this was going to provide a simple
code protection , then i read your relevant thread i changed my idea and
converted existing project to a action plugin compiler
finally we have a action plugin compiler and i am going to add some useful features to it ,for make it a useful program
if you have any suggestions or ideas, i am always open for them :)
MicroByte
07-04-2009, 05:19 AM
i dont think commandline arguments are needed.
if you have any suggestions or ideas, i am always open for them
sometimes im really lazy, could you make the application read my mind and automaticly generate the code for the plugin ... lol, now that would be cool.
seriously, with all the bells and whistles you have mentioned so far i don't think there's much more to add, all i really want is the help file and external dll support from the lmd and then this tool is perfect for me, any additional stuff is just a bonus.
Centauri Soldier
07-04-2009, 11:15 PM
i dont think commandline arguments are needed.
"Needed" is an interesting word. In fact, all I really need is food, water and shelter but CLAs would be nice too.
So far the tool is working pretty good Reteset. I'm liking it all a lot.
MicroByte
07-05-2009, 06:00 AM
"Needed" is an interesting word. In fact, all I really need is food, water and shelter
interesting indeed, and probably true but you would die of boredom!
i just dont see the point of adding "CLA's" to a app with a 5 second splash screen.
Imagine Programming
07-05-2009, 06:04 AM
"Needed" is an interesting word. In fact, all I really need is food, water and shelter
interesting indeed, and probably true but you would die of boredom!
i just dont see the point of adding "CLA's" to a app with a 5 second splash screen.
That would be quite useless yes.
reteset
07-05-2009, 08:09 AM
please ignore wrong post
reteset
07-08-2009, 02:36 PM
Updated
Version : 1.1.0.0
What's New :
Multiline Bug In Project File Is Fixed
File Import Feature Added , Now you Can Import Dependencies Into Plugin And Export Them In Runtime (Max : 20 files)
Help File Generator Feature Added , Now Program Generates An Automated Help File From Your XML Souce
there is no documentation for program maybe i can prepare a help file in next version , but usage of this program is very simple
i'll write some info about new feature : file import and export in runtime
How To Import A File :
Resource : you need to press the browse button and select the file you want to import into plugin
ID : you need to select different resource IDs for each file , you can import maximum 20 files into plugin ,
you will need these resource IDs when you want to export them in runtime
Press Add Resource button then you complete previous steps
you will see file path and resource ID in Resources
you can apply previous steps for all dependency files
if you want to remove a file from the resources , select that file in Resources and press Delete Resource button
you must apply these steps before build plugin
How To Export A File :
Call this build-in action in your Lua script any time you want
boolean PSDK.ExportArchive(ResourceId , FilePath);
ResourceId : The resource ID you used during import file
FilePath : The file path you want to save this file as
this action returns true on succeed and returns false on failed
if specified file already exist , it just overrides
Thanks :
Dermot : thanks for his great support
MicroByte : Thanks for help file generator functions
Sombre : UPX compression was copied from his Exe compressor sample
ShadowUk : i used various images that are shared by ShadowUk
WebUltra : i used toolbar buttons from his myoffice example
Jack Daniels : Office 2007 interface design by Jack Daniels
download New Version (http://www.amsplugins.com/details.asp?ID=82&CID=4)
Imagine Programming
07-08-2009, 07:46 PM
Very.... very very amazing. Just perfect! Thank you Reteset!
ShadowUK
07-17-2009, 09:13 AM
PM'ed you a Major issue. Don't want to get flamed for posting anything to do with hacking AMS apps again.
Centauri Soldier
07-17-2009, 02:52 PM
Hey Reteset, I got an idea. Now, I was going to create the program myself but I thought it might be better (since we already have a few plugin-oriented programs) if it were simply incorporated into your plugin tool. If you don't want to include it in the plugin tool then I can make it...just let me know please.
The idea is for a Readme.html creator. It will create a single page based on the format used to create the plugin help file (the background and text format). It will give the user a place to put his install instructions, credits and version history. It will build the install file (the Readme.html) based in that infomation and on the information included in the plugin (version, author info etc.). It would be a nice add-on to your plugin maker and would be a very easy and neat way of including readmes with a plugin.
Note: The readme could be created in the same folder as the plugin project. The plugin tool could even offer to zip the entire project up with the Readme.html after it is compiled (using a format like "MyPlugin v1.2.0.0.zip).
So what do you think Reteset?
reteset
07-17-2009, 03:10 PM
Hey Reteset, I got an idea. Now, I was going to create the program myself but I thought it might be better (since we already have a few plugin-oriented programs) if it were simply incorporated into your plugin tool. If you don't want to include it in the plugin tool then I can make it...just let me know please.
The idea is for a Readme.html creator. It will create a single page based on the format used to create the plugin help file (the background and text format). It will give the user a place to put his install instructions, credits and version history. It will build the install file (the Readme.html) based in that infomation and on the information included in the plugin (version, author info etc.). It would be a nice add-on to your plugin maker and would be a very easy and neat way of including readmes with a plugin.
Note: The readme could be created in the same folder as the plugin project. The plugin tool could even offer to zip the entire project up with the Readme.html after it is compiled (using a format like "MyPlugin v1.2.0.0.zip).
So what do you think Reteset?
Good ideas :yes
these are mostly applicable
MicroByte
07-18-2009, 04:32 PM
@Centauri Soldier
i wrote the functions that generate the help file, if you need i can give you a useful base function to turn the xml tree into a lua table and also the code that generates the helpfile (with reteset's permission of course)
you could then just add your extra information
i have not used the new version of this tool yet so i have no input yet, iv been a bit busy with other non AMS related tasks, i hope to return to AMS soon and get some real useful plugins going.
PM'ed you a Major issue.
ok, without broadcasting "how to hack this plugin", is this *issue* related to application security or functionality, flaws in security i can handle as i wouldn't use AMS to write something i want to protect, flaws in functionality of course must be addressed.
Centauri Soldier
07-18-2009, 07:15 PM
@ MicroByte
I think I'll wait for Reteset to release the next version and see if he added the suggestions to the program first, but if not then I would definitely be interested in trying to create my own system. Thanks for the offer.
That function for turning xml into a lua table alone would be quite useful though, I would love to have that.
ShadowUK
07-19-2009, 04:58 AM
ok, without broadcasting "how to hack this plugin", is this *issue* related to application security or functionality, flaws in security i can handle as i wouldn't use AMS to write something i want to protect, flaws in functionality of course must be addressed.
It's related to AMS security is what reteset told me.
reteset
07-19-2009, 11:00 AM
Ok it is the time to explain what we talked about
what he asked about:
i can view lua source of plugin in memory with a memory monitor program as can view my AMS applications , so what the encryption does..?
My answer :
there is no memory encryption ,
this program encryptes source only
also there is no real encryption in memory in any programming language
this program encryptes your lua source and imports in to plugin
and output plugin decryptes that lua source at runtime and passes to AMS runtime
actually there is no difference between autorun.cdd
autorun.cdd keeps your source as a plain text
this plugin keeps your source encrypted
the only difference is this
but in both cases they are plain text in memory
because all plugins are using same ( (shared) typically LuaState ) memory address at runtime
finally , Lua is not a programming language
Lua is a embedable scripting language , like ASP, PHP . JS
and you have to provide a human readable text to parser
if you encrypte it you must decrypte in memory and send to parser again ,but all source is plain text in memory
reteset
07-19-2009, 11:31 AM
@ MicroByte
I think I'll wait for Reteset to release the next version and see if he added the suggestions to the program first, but if not then I would definitely be interested in trying to create my own system. Thanks for the offer.
That function for turning xml into a lua table alone would be quite useful though, I would love to have that.
if anyone willing to contribute to this program i can happily accept
if you have improvement ideas ,or you can make new additions to program
you can prepare a separate sample project , then i can add your additions
to this program , and i can add your name,email,website etc. to about program dialog
help file generation script made by MicroByte , he sent me scripts as a sample project and i added his scripts to program
i can even share the APZ of this program if you need to view source for your new additions then you accept the following
i wont create a different program and release it with parts of this program
i wont share the APZ with other people
please PM me if you willing to contribute to this program and need to APZ doc.
Centauri Soldier
07-21-2009, 12:41 PM
Hey Reteset,
I PMed you regarding contributing to the project. I would love to share my ideas with you.
Also, I have a question. How do I include a dll in my project? That is how do I reference the dll location in my code? Where is the dll placed when the plugin is compiled and installed?
MicroByte
07-21-2009, 04:12 PM
you would first need to unpack the dll, you cant access it from the lmd to call functions directly.
How To Export A File :
Quote:
Call this build-in action in your Lua script any time you want
boolean PSDK.ExportArchive(ResourceId , FilePath);
ResourceId : The resource ID you used during import file
FilePath : The file path you want to save this file as
this action returns true on succeed and returns false on failed
if specified file already exist , it just overrides
reteset
07-21-2009, 04:53 PM
Hey Reteset,
I PMed you regarding contributing to the project. I would love to share my ideas with you.
Also, I have a question. How do I include a dll in my project? That is how do I reference the dll location in my code? Where is the dll placed when the plugin is compiled and installed?
i assume you have a dll and you want to call functions from that dll in your plugin
How To Import Your Dll :
Resource : press browse button and select your dll
ID : select 3000
Press Add Resource button then you complete previous steps
you will see dll path and resource ID in Resources (grid)
you can apply previous steps with different IDs ,if you have more dll files
if you want to remove a dll from the resources , select that dll in Resources and press Delete Resource button
press build button then you filled all required fields
So what did happen to my dlls , Where are they gone:
program icluded your files in to resource section of plugin
like you made a ZIP file
How To Export your Dll :
sz_dllpath = _SourceFolder.."\\YourDllName.dll"; -- dll path in a global variable
-- this is up to you , you can export anywhere you can access
function CheckMyDll() -- a function to make job easy
if not( File.DoesExist(sz_dllpath)) then -- export only when dll does not exist
bRet = PSDK.ExportArchive(3000 , sz_dllpath); -- export dll to "sz_dllpath"
if not ( bRet ) then -- if failed pop-up a error message
Dialog.Message("Notice", "An Error Occured While Exporting Dll", MB_OK);
end
return bRet; -- return the result
end
And Using this function in your Lua Classes:
if ( CheckMyDll() )
DLL.CallFunction(sz_dllpath, "MyFunctionName", "", DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL);
end
hope this helps
Centauri Soldier
07-21-2009, 10:21 PM
Fantastic! Thank you very much Reteset. :D
Centauri Soldier
07-25-2009, 09:50 PM
Here is the updated version of the code you gave me Reteset. It was not returning true when the file was there so I fixed it and thought I would also share the other two functions I built to assist in extracting and referring the dll as well as cleaning up (if desired). Thanks again Reteset. :D
Change everything that is marked red to adapt it to your project.
MyFunction = {};
function MyFunction.Activate(...)
IRLUA_PLUGIN_CheckNumArgs(arg,1)
local sFolderName = IRLUA_PLUGIN_CheckString(arg,1)
MYFUNCTION_DLL_PATH = sFolderName.."\\MYDLL.dll";
end
function MyFunction.Cleanup()
if File.DoesExist(MYFUNCTION_DLL_PATH) then
File.Delete(MYFUNCTION_DLL_PATH, false, false, true, nil);
end
end
--HIDDEN FUNCTION
function MyFunction.CheckMyDll()
if not File.DoesExist(MYFUNCTION_DLL_PATH) then
bRet = PSDK.ExportArchive(3000 , MYFUNCTION_DLL_PATH);
if not bRet then
Dialog.Message("Notice", "An Error Occurred While Exporting the MYDLL.dll Dll file", MB_OK, MB_ICONNONE, MB_DEFBUTTON1);
end
return bRet
else
return true
end
end
reteset
07-26-2009, 08:08 AM
Here is the updated version of the code you gave me Reteset. It was not returning true when the file was there so I fixed it and thought I would also share the other two functions I built to assist in extracting and referring the dll as well as cleaning up (if desired). Thanks again Reteset. :D
Change everything that is marked red to adapt it to your project.
MyFunction = {};
function MyFunction.Activate(...)
IRLUA_PLUGIN_CheckNumArgs(arg,1)
local sFolderName = IRLUA_PLUGIN_CheckString(arg,1)
MYFUNCTION_DLL_PATH = sFolderName.."\\MYDLL.dll";
end
function MyFunction.Cleanup()
if File.DoesExist(MYFUNCTION_DLL_PATH) then
File.Delete(MYFUNCTION_DLL_PATH, false, false, true, nil);
end
end
--HIDDEN FUNCTION
function MyFunction.CheckMyDll()
if not File.DoesExist(MYFUNCTION_DLL_PATH) then
bRet = PSDK.ExportArchive(3000 , MYFUNCTION_DLL_PATH);
if not bRet then
Dialog.Message("Notice", "An Error Occurred While Exporting the MYDLL.dll Dll file", MB_OK, MB_ICONNONE, MB_DEFBUTTON1);
end
return bRet
else
return true
end
end
thank you ,
yes you are right
i did not test my function , because i wrote it on Notepad++
thanks for new functions :yes
S0mbre
08-02-2009, 11:13 PM
OMG, what a great plugin was added while I was on vacation! Thank you ever so much, reteset :) it really rocks!
reteset
09-01-2009, 03:15 PM
So Reteset, any ideas when the next release will be coming out? I'm really looking forward to the update. :D
i am very busy right now but i am going to release a new version soon
i converted program GUI to a compact style for new properties and fields
but i need Office 2007 look , tab pane and tab button images which matches with current application theme
if anyone has such images , please could you send me
also i have some ideas for output plugins
maybe i can merge LuaCom and maybe some other plugins with output plugins
so you will be able to use luacom without include it to application
simply: luacom and maybe others will be build-in
pabloko
09-01-2009, 05:44 PM
Yeah! it's sounds good! LuaCom is very useful, but actual version have some problems to call certain objects propiets and methods... 1.4 now relased and if possible this rocks
I like ribbon interfaces there are very much scripts to start with it, i'm using jquery ribbon for web developing, but i'ts very simply to clone in ams
http://dev.mikaelsoderstrom.se/scripts/jquery/ribbon/
Thanks for your work
Best regards
i am very busy right now but i am going to release a new version soon
i converted program GUI to a compact style for new properties and fields
but i need Office 2007 look , tab pane and tab button images which matches with current application theme
if anyone has such images , please could you send me
also i have some ideas for output plugins
maybe i can merge LuaCom and maybe some other plugins with output plugins
so you will be able to use luacom without include it to application
simply: luacom and maybe others will be build-in
reteset
09-10-2009, 01:30 PM
Important Announcement
Development of this program is temporary canceled
Use of plugins that are generated by this program is not recommended
until this program is updated
program removed from site index and it is no longer available , until i decide to update it
i am sorry for any confusion
Mikhail
09-10-2009, 08:41 PM
Why? Please, details.
rexzooly
09-11-2009, 11:18 AM
Important Announcement
Development of this program is temporary canceled
Use of plugins that are generated by this program is not recommended
until this program is updated
program removed from site index and it is no longer available , until i decide to update it
i am sorry for any confusion
Ya i would like to know why its not recommended?
reteset
09-12-2009, 12:05 PM
Hi again
i wrote that announcement message because of some reasons that i can not write here
but there is no bug nor security issue
also there is nothing that may cause any problem in plugins that generated by Action Plugin Compiler
so it was not a technical problem
you can use your existing plugins that are generated by this program
next updates will be provided by Centauri Soldier
plugin generator and plugin core will be developed by me again
for new builds please wait for new update , there will be various changes on program and plugin core
and next release may provide more freedom on building plugins with this program , but you can use current version too :yes
also i did not know that there was lots of users of this program :)
thank you
rexzooly
09-12-2009, 12:09 PM
Hi again
i wrote that announcement message because of some reasons that i can not write here
but there is no bug nor security issue
also there is nothing that may cause any problem in plugins that generated by Action Plugin Compiler
so it was not a technical problem
you can use your existing plugins that are generated by this program
next updates will be provided by Centauri Soldier
plugin generator and plugin core will be developed by me again
for new builds please wait for new update , there will be various changes on program and plugin core
and next release may provide more freedom on building plugins with this program , but you can use current version too :yes
also i did not know that there was lots of users of this program :)
thank you
dose that mean i am able to download that version? or is that still removed ?
reteset
09-12-2009, 12:57 PM
dose that mean i am able to download that version? or is that still removed ?
sorry , i forgot that
i enabled it again you can download from same where
rexzooly
09-12-2009, 02:35 PM
sorry , i forgot that
i enabled it again you can download from same where
Thanks, i do that soon :D
Mikhail
09-12-2009, 10:17 PM
Hi again
but there is no bug nor security issue also there is nothing that may cause any problem in plugins that generated by Action Plugin Compiler so it was not a technical problem
Ah... Thank you for clarifying! :yes
And thank you very much too for all your shared work. :)
jassing
09-27-2009, 02:50 PM
Any chance the source can be released?
ShadowUK
09-28-2009, 12:15 AM
I doubt it, people would just remove the "Made by Action Compiler" bit.
jassing
09-28-2009, 10:18 AM
too bad -- all the noise is really annoying.
reteset
09-28-2009, 01:15 PM
Any chance the source can be released?
this application consists of 3 parts
1 : APC.DLL This is the compiler module and this dll does all compile tasks
2 : Shared.dll This is the template plugin APC.DLL converts this dll to a LMD plugin acording your plugin properties and sources
3 : And AMS part , AMS provides only GUI for this application
and help file generation ,save & load project and some other stuff
i can not share sources of APC.DLL and Shared.dll
but i can share APZ document of this application
as i mentioned before like below
if anyone willing to contribute to this program i can happily accept
if you have improvement ideas ,or you can make new additions to program
you can prepare a separate sample project , then i can add your additions
to this program , and i can add your name,email,website etc. to about program dialog
help file generation script made by MicroByte , he sent me scripts as a sample project and i added his scripts to program
i can even share the APZ of this program if you need to view source for your new additions then you accept the following
i wont create a different program and release it with parts of this program
i wont share the APZ with other people
please PM me if you willing to contribute to this program and need to APZ doc.
finally i can share APZ doc with some people in this community without above restrictions
and you are one of those people
if you interested in with only APZ source of this application
just send a PM to me or contact me on MSN
Thanks
reteset
10-09-2009, 04:12 PM
am i viewing ghost threads around :D
Ok. i think it should be good to enable download page again
RizlaUK
10-10-2009, 06:28 AM
and your timing is great too, iv got a super plugin to release soon that shows this tool making object plugins!!
no seriously, object plugins, i have developed a system in PB that now allows me to add any PB object to the a AMS window and its fully functional, with an event callback, crash free resizeing (lol)
Sakuya
10-10-2009, 09:36 AM
Sounds amazing! Hopefully a resizable, stable ListIcon?
RizlaUK
10-10-2009, 09:57 AM
already working closely with someone on that ....... AMS is about to see a revolution!
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.