Easy Windows app development solution? - windows

I have been developing utility scripts to run on Windows (parse log files, make reporting on it, extract informations, read from database...).
Now I would like to go a bit further and transform those scripts in an application with a quick and dirty GUI (file selections, buttons, datagrid...).
What I'm looking for is an easy way to make a GUI on Windows, able to access the filesystem and execute other commands, requiring the least amount of installation possible and with a free IDE.
I have thought about several solutions but can't find one that fits all: HTML5/Javascript (can't access filesystem, run programs...), Visual Basic 6 (not free and need to install libraries), C++/C# (not really RAD, takes time), Java (takes time to make a GUI)...
Is there a magic solution? (I've read that in Windows 8, we will be able to develop real Windows applications using HTM5/JS)

AutoIt might be a good solution for you, and should address most of your requirements. It's a scripting environment with GUI capabilities and a lightweight editor.
Edit : This answer sucks, I should have paid more attention to your question.

Related

Finding PowerShell Cmdlets equivalent to GUI actions

I would like to know where I could find good resources/documentation on configuring a new Windows10 installation using Powershell scripts. I know bash but I'm completely new to Powershell.
When I search google, all I can find about automatically configuring Windows relates to Windows Deployment Services. But I don't have and don't want a Windows Server and simply running a few scripts after each installation is sufficient for me.
I found a few scripts that solve some of the things I want to do:
https://github.com/FlatlanderWoman/winCleaner
https://github.com/hahndorf/Set-Privacy
But for everything else, when I look into the TechNet Library I find it very hard to find anything useful. And when I do find something, it looks outdated:
https://technet.microsoft.com/en-us/library/hh852115.aspx
The problem is: I known the GUI-way of configuring everything I want, but I don't know how to find the corresponding commandlets to do the same with Powershell.
Is there some kind of event listener I could use to find the Cmdlets? Or does anyone have some resources/documentation to recommend? Is the TechNet Library really the established way to find these commands?
Thank you.
Unfortunately PowerShell was only really implemented in Windows 7 (yes I know it was available for XP but not preinstalled) and even then it was kind of like an addon rather than part of the core OS. Windows 8 and 10 have further improved functionality but still for the most part do not use it for their own settings and functions as most home users would have no use for it.
However there is nearly always a way to do whatever you need to, I have a script that configures servers from scratch, renaming the server, installing requisite software and features, copying files, configuring VSS, right down to putting the Computer icon on the desktop. You just have to make a list of everything you want to do, then Google each one.
For example: https://www.google.co.uk/search?q=powershell+put+computer+on+desktop - at time of writing the first result is a TechNet script pointing at a registry key. Tidy as necessary, whack into your build script and move on to the next item.
As of yet there's nothing I've found I've been unable to do with PowerShell, but the vast majority of it has not been directly with cmdlets. There's a lot of registry tweaking and command line stuff like msiexec or schtasks, some COM objects and an awkward Type I had to create and use to set the DNS suffix.
Overall I think it's still easier to do all this in PowerShell than any other scripting language and it's more flexible than premade tools, not because it has so much functionality built-in but because it can access .NET and COM which gives you broad access to all the half-baked stuff MS have wedged in over the years.

How can I gather system information via scripting?

My original question was to quickly and easily gather hardware information from a computer. I was also hoping to do this over a network, rather than sit down at each PC and run a script. Scriptomatic 2.0 was the solution to my problem.
One thing I would like to note about it: It seems to work well only under Windows XP. When I ran it on Windows 7, it did not function properly.
During my long night of trying to solve the problem myself, I came across this wonderful tool. It had a ton of sample scripts, all of which applied to my situation.
http://www.vbsedit.com/scripts/misc/wmi/scr_1343.asp
This program is free by evaluation. The evaluation will never run out however, as stated by the program. Each time you compile, it takes a second longer. However, if you open a new window the counter resets. This program was extremely helpful for someone like me who knows basic programming, but nothing about VB scripting.
Microsoft has provided a free tool called Scriptomatic 2.0 which automatically generates scripts in vbscript that allows you to get hardware and software information. You can download the tool from http://www.microsoft.com/en-in/download/details.aspx?id=12028

Ways to run custom windows application in OSx

I would like to know options to run custom windows application (delphi) on MacOS.
I know that the optimal solution would be to re-write the application in objective-c,
but that would take over a year of development.
I know that I could use "bootcamp" or virtual solution.
That includes the expenses of windows + virtual enviroments that is a no-go.
But I wonder if there is a way to actually run windows applications the easy (one click installer) way such as CrossOver or any other similar solutions.
I would be most grateful If you share your ideas!
The way I've done so, after getting feedback from others on other web sites for Beyond Compare, is use Wine. Now I am not certain what all the options are for wine, binary-wise.
I didn't have the time to invest in figuring it out, but someone on twitter, and the beyond compare account itself, recommended Wine Bottler.
http://winebottler.kronenberg.org/
When using wine/wine bottler, the windows apps will see the local file system in a curious way. The real mac local drive appears as "Desktop\My Computer\Z:", and what seems to be a new virtual drive appears as "Desktop\My Computer\C:" with the typical windows folders. Also under desktop: a folder called "/" which is the same as z:
I'm sure someone who has a lot of experience could have answered this question with better elaboration, but these are at least based in my own limited and successful experience.

Best Alternative for Converting VB6 to run under Windows 8

I originally (many years ago) wrote my applications using VB6 on the assumption that it was a strategic Microsoft product and so I would be able to run them as long as I wanted. However with Windows 8 it looks like VB6 will not longer be able to run.
What do people think is a good strategic alternative to VB6 as a simple development environment for applications not needing Internet access (they just run on the PC)? I really do not want to have to convert the applications again in the future.
Go for .net , it runs on a "virtual machine" and it seems it will be here for long time to come. The development cycle is similar to VB6.
You can look at PowerBasic Compiler for Windows + PowerBasic Forms 2.0...
Delphi is an option and depending on how complex your programs are there are some conversion tools available.
Alternatives abound, and choosing a good one is hard enough. Forget finding a "best" one.
Some people like Jabaco, which has the advantage of targeting multiple platforms.
VB6 SP6 run perfectly on 8 full version, some kb update will stop system info and rtf tools from loading, so be careful if in case you app uses them, when doing some kb updates be careful and reimage your system regularly.
WARINING: IF YOU HAVE NOT UPGRADE FROM 8.0 TO 8.1 NOW, PLEASE DON'T, BECAUSE ABOUT 90% OF THE TOOL DOESN'T WORK. IT MAY BE SUPPORTED LATER, SO WAIT.

Don't you think writing installer programs could/should have been simpler? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I recently had to struggle with one installation project (which uses most popular product for creating installations: InstallShield) to make it work for product upgrades (migrating from one version to another). In the end it turned out that I needed to use one long package code but was using some other. It wasted my 8 hours (testing and debugging installers is a pain).
Now if I think about it, once you are done all the hard part of coding, all you want to is that correct applications, libraries are copied to target computer and user just runs it. Period. This apparently simple task normally turns out to be a tricky one and "being closed to finish date" makes in even harder.
Don't you think deploying a product is made damn difficult on windows which should have been simpler? (or installer really deserves that much attention and I am just being crazy about it?)
Have you ever used simpler deployment schemes such as "copy the folder to wherever you like and run the exe. When you want to remove it, just delete the folder!"? Was it effective and made things simpler?
Painful as it is you need to wrestle with the windows installer for the benefit of your customers. Otherwise you will need to do a lot more work to
Handle situations where for some reason an error occurs during the installation. What do you do next?
Handle issues like security. What if the installing user does not have rights to particular folders/registry keys?
Correctly cleanup after installation
Patching and patch management
Performing additional tasks -- registering COM objects, creating databases, creating shortcuts, creating an un-installation shotcut and so on
Installing prerequisites
Letting users choose which features to install
Your own custom scripts to solve all these problems eventually become a bigger problem than the installation itself!
I recommend that you check out Wix. It's not exactly child's play but it gets the job done. If you install Votive as a visual studio add in you get intellisense to help you strucutre the tags correctly. With the help file you can create pretty functional flexible installations
I don't think you'll see too many disagreements here, especially regarding MSI. I think one thing to keep in mind is to watch the way many programs are using MSI files these days. Displaying UI dialogs and making complex configuration choices with an MSI is very weak simply due to the way Windows Installer was designed, so I've noticed a lot of programs being split into a bunch of baby MSIs that are installed with the minimal UI by a parent setup program. The SQL Server 2008 setup wizard does this. UPS WorldShip does this. And Paint.NET does this, too--the wizard you see is a Windows Forms app, and it launches msiexec itself (you can see the minimal UI of the Windows Installer pop up on top of the white wizard window), passing any configuration parameters as property arguments to msiexec.
A common scenario where this comes up is where someone is tasked with building an installer for an application that has both server and client counterparts. If the user chooses the server option, then they may or may not want a new database to be installed, which means installing SQL Server. But you can't just install SQL Server while you're in the middle of your own installation because Windows Installer won't let you do that. So a frequent solution is to write an app that displays a wizard that allows the user to configure all of the setup options, and then your app launches the MSI files as needed for SQL Server, your server application, and your client application in the minimal UI mode; basically, eschewing the "features" aspect of Windows Installer entirely and moving it up to the MSI level. 4.5's multiple-package installations seems to be a step further in this direction. This format is also especially useful if you also need to loop in non-MSI installers from third parties as part of your installation process, like installing a printer driver for some bizarre point of sale printer.
I'll also agree that Windows Installer lacks built-in support for common deployment scenarios. It's meant for when setup isn't XCOPY, but they seem to miss the fact that setup usually isn't just "files + shortcuts + registry keys," either. There are no built-in actions for setting up IIS Web sites, registering certificates, creating and updating databases, adding assemblies to the GAC, and so on. I guess they take the opinion that some of this should happen on first run rather than being a transactional part of the install. The freely available tooling and documentation has been awful--flat out awful--for the better part of a decade. Both of these issues are largely addressed by the WiX project and DTF (which lets you finally use managed code custom actions), which is why we're all so grateful to Rob Mensching and others' work on that project.
I've had the same experience. Installation can quickly suck up your time as you go down the rabbit hole of "Oh God, I guess I have to become an expert in this too." I second the idea that's it's best to address it early on in your project and keep it maintained as part of your build process. This way, you can help avoid that scenario of having developed a practically uninstallable product. (Trac was an example of this for a while, requiring to track down specific versions of weird Python libraries.)
(I could go on about how Windows Installer sometimes decides to use my slow, external USB hard drive as a place to decompress its files, how it seems to sit there doing nothing for minutes on end on computers that have had lots of MSI installs on them, and how that progress bar resetting itself a bazillion times during a single install is the most idiotic thing I have ever seen, but I'll save those rants for another day. =)
My two cents; please note that I really just know enough about Windows Installer to do damage, but this is my assessment coming from a small business developer just trying to use it. Good luck!
Well, its a lot easier if you build your installer first, make it part of your build system, and let it grow with your project.
I agree, the windows installer drives me insane. But there are a lot of situations that xcopy just doesn't solve. Sometimes you want to install for multiple users, not just the current user. Sometimes you have to register COM objects. Sometimes you have to make a whole bunch of changes to the system, such as registering services to run at startup, connecting to network servers, etc. Sometimes you have users that can't use a command prompt. And you always want to be able to role the whole thing back when something fails halfway through.
Was the whole MSI database approach the best way of doing it? I'm not sure. Would I rather pound nails into my head than write another line of WiX code? Probably. But you have to admit, it does a good job of doing everything you could ever possibly want. And when it doesn't there is always the CustomAction option.
Really, what I would like to see, is better documentation (really, what is a type 50 action? How about giving it a name?) and a lot more easy-to-usurp templates.
And the WiX users group alias does a good job of answering questions.
You should read RobMen's blog. He does a good job explaining why things are the way they are. He has done a lot of thinking (more than any human should) about the problems of setup.
Have you looked at NSIS: http://en.wikipedia.org/wiki/Nullsoft_Scriptable_Install_System ?
And 1: Yes, 2: No
Personally, I mostly agree with #Conrad and #John Saunders. I wrote about this topic a long time ago on my old blog. I think #jeffamaphone has a point about the Windows Installer complexity (and my over attention to setup, in general ) but I believe the Windows Installer is still the best all round option for installation on Windows.
"Once you have done all the hard part of coding", you haven't done a thing if all your hard work doesn't install. Installers need to be built and tested on every nightly build, every night, almost from day one. You need to test that the installer can be built and run, and you need to verify the installation.
Otherwise, who cares how much hard work you've done coding - nobody will ever see your work if it doesn't install!
Note that this also applies to XCOPY.
Another thing: what is your QA testing if they're not testing what your installer installs? You have to test what the customer will get!
For exactly the reasons you state, we've done internal releases, handled by the dev team by copying the required files, and then done the rest of the setup using scripts and our own utilities.
However, for end users you have to have some kind of hand holding wizard, I've used the MS installer from within VS and found it confusing and clunky. After that experience I've avoided the pain by getting others to do the installation step. Can anyone recommend a good .Net installer?
I use Installshield and if you are not trying to do anything too fancy (I why would you) then it's pretty straighforward - set initial setting, select files, set up shortcuts and create setup.exe.
All future updates I handle inside my code - much more convinient to the user

Resources