Jump to content
jazzyjeff

App Store

Recommended Posts

jazzyjeff

Hello,

Well this is my first example script that I have posted. I know it's not pretty or perfect, but I intend to continue working on this project to make it better. I am actually posting the source code, hoping the others may see a potential use and help improve it too! :oops:

Like the title says, it is "App Store". Not a great name and one that Apple probably won't like me using! It was developed to be able to provide our users at the school district I work for (staff and students) with the ability to install their own applications without the need for the technology department to have to input the password to complete the installation. We create our own automated installation files, so users don't have to go through settings they may not understand and we point the app store to these files.

The cool thing about this is we control what applications we allow the students and/or staff can install on their machines. The applications are listed in an ini file that the scripts pulls into a list. The user selects the application and clicks install. As a Domain Administrator you would be able to add and remove software to the App Store.

The App Store is launched by starting an exe that launches a service that then starts the App Store as the user, but modifies the registry to surpress UAC prompts. When the program is closed the UAC is reactivated. I plan on restricting mouse movements to within the GUI using the _MouseTrap function, so prevent users from trying to install other software while the security settings are lowered.

There are things that I wish to improve like:

- Highlight a listed application if it is older than the one on the app store.

- Provide the ability to add an icon to the app store application list, so users can get a visual of what the app is i.e. Skype icon if Skype listed in the App Store.

- Create an installer package that will create the service and grant them rights to start it.

- The interface. I'd like to make it look more modern as I know it's a little dated looking now.

Anyway, this has been my project over the last couple of work weeks. I've learned lots, and I'm sure I will continue to as I update it.

Hopefully someone else will find it of use and thanks for taking the time to look.

Thanks for everyones help over the last 18 months of learning this language. It's certainly helped make things better and easier in how my job gets done.

AppStore.au3

Share this post


Link to post
Share on other sites
Vivaed

This looks promising, there is a AD.au3 missing? Where do I get this.

 

adau3.PNG

Share this post


Link to post
Share on other sites
argumentum

having something like IniWriteSection("C:\Program Files\Company\Software.ini", "ApplicationName", "", "") is not a good idea.
I'd use IniWriteSection(@AppDataCommonDir & "\Company\Software.ini", "ApplicationName", "", "").
Thanks for sharing

PS: also, Func _DecryptPW() , would be much better if you could send the data to a web page, so the passwords are not needed. 

Edited by argumentum

Share this post


Link to post
Share on other sites
willichan
On 3/9/2012 at 5:25 AM, jazzyjeff said:

Like the title says, it is "App Store". Not a great name and one that Apple probably won't like me using

Well, back in my days of working for Novell (long before Apple even thought of an App Store) we had an application very similar to this that was called "App Store".  So, I don't think you have anything to worry about.

I have been meaning to recreate that old App Store for years now, but have never got around to it.  This looks good.  I think I might play around with it a bit.

Share this post


Link to post
Share on other sites
JLogan3o13

@argumentum as you may notice, the post is over 5 years old. If you see room for improvement, I am sure you are welcome to do so and then post your own updated version with proper credit given to jazzyjeff.


√-1 2^3 ∑ π, and it was delicious!

Share this post


Link to post
Share on other sites
argumentum
On 3/9/2012 at 8:25 AM, jazzyjeff said:

Well this is my first example script that I have posted

This is what I saw without noticing the dating.

On 11/20/2017 at 9:19 AM, Vivaed said:

This looks promising, there is a AD.au3 missing?

..then I wanted to know, wassup.

6 hours ago, JLogan3o13 said:

as you may notice, the post is over 5 years old.

I did not reawaken the post.
@jazzyjeff still here. This week.

On 3/9/2012 at 8:25 AM, jazzyjeff said:

I've learned lots, and I'm sure I will continue to as I update it.

so who knows.
I wrote a better example here ( of a posting of my own ) and did not announce it by adding a new post,

But at times, I know I brainfart. Let me know where and how and I'll do my best to attend to my behaviour.

Share this post


Link to post
Share on other sites
jazzyjeff

Hey All, sorry I just noticed this post. I made, what I feel, were great improvements to this. I have further work to do on it too, but I have gotten side tracked from the project a little and haven't needed to work on it.

Where I left things was implementing this into a SQL DB, where there is a lot of customization to be made. Including the name :-) You could have it display as "My Company - Application Store", or what ever you wanted and place a logo.

The code I have is ready to go, with the assumption you have a SQL DB setup with the appropriate tables and columns so that data has a place to go. My plan is to build an installer that will be able to create a DB for you either in a full SQL or SQL Lite DB. I doubt I'll get to this within the next 2 months to be honest, but I'll post the code that I have and if you are OK/comfortable in SQL just to create a DB and tables, the application will work. I can guide you through what needs to be created if interested. Like I say though, I will finish this with an installer package, so it can just build the DB for you. I'll just need to make some time to work on it. It'll be easier when I get my network at home setup to do the testing for it. I don't have access to SQL at my new employment, so I can't do anything with this right now.

Share this post


Link to post
Share on other sites
jazzyjeff

There is a now GUI that is used to configure the Application store. I have attached screenshots of this. I cannot attach screenshots, of the App Store app any more, because I don't the DB or access to a SQL server to create a DB right now to replicate the setup. I will add these when I get around to it though.

In the Configuration GUI though, you can enter your own credential information which is saved to an INI file. The password is hashed out, so it cannot be read in clear text. Permissions to application installs are done by AD group membership and, there is a field where you can specify where to read those groups from. You can add a company logo, rename it to your personal company. 

I am having problems uploading the code for the Application Store app itself, so I will try that in a separate post below.

appstore.JPG

appstore1.JPG

AppStoreConfig.au3

Share this post


Link to post
Share on other sites
jazzyjeff

Here is the code for the Application store itself. In here is the code for displaying the applications, and to install the applications. I will help with any questions as much as I can. This post has actually prompted me to want to get back into it again, because I see there being so much potential. I had this idea, that it could "rival" :-) system center in terms of functionality. This would be the equivalent of Software Center, where users could install applications as they need it, and I would then build another application that would utilize powershell to deploy applications on demand. More of a dream of building it than a reality right now, but I hope to work on it in the new year at least.

So the App Store now has added features like, displaying product keys, and only displaying product keys for users that have access to the application. i.e. if you want to list a program like Camtasia and don't have a package where the serial key is embedded, you could have it display in the app store if you like, and only the users you have granted rights to the app can see that product key. I have added the ability to limit the number of installs for applications, so you could say that you would only allow the Adobe CS Suite to be install 20 times. After that, the counter hits 0 and the app store will stop more installs being made. Applications can now also be password protected, so you may not want to allow installs by group, but perhaps provide users with a password to install the application. You can now set the password in the app store to help with restrictions if needed.

Overall I think the application is more stable and robust than it ever was before. I think I came along way with it, and I know there are further improvements yet that I can make. I will get to those.

I hope it comes in useful.

AppStoreV3.1.au3

Share this post


Link to post
Share on other sites
jazzyjeff

Oh I can add, that it has been successfully used and tested at a school district with over 1000 employees and over 6000 students.

  • Like 1

Share this post


Link to post
Share on other sites
argumentum

If you point to the includes:

#include <GUIListViewEx.au3> ; https://www.autoitscript.com/forum/topic/182492-guilistviewex-bugfix-version-25-sep-17/
#include <AD.au3> ; https://www.autoitscript.com/forum/files/file/355-ad-active-directory-udf/
#include <_RegEnumKeyEx.au3> ; https://www.autoitscript.com/forum/topic/144234-_regenumkeyvalex-_regenumkeyex-_regenumvalex/
#include <_Array1DTo2D.au3> ; https://www.autoitscript.com/forum/topic/165600-_array1dto2d/
#include <_IsUACAdmin.au3> ; https://www.autoitscript.com/forum/topic/145697-_isuacadmin-check-admin-and-elevation-rights/

makes life easier ;) 
Thanks for sharing :D 

Share this post


Link to post
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

×