Run program without any thing installed? - windows

Recently I have been making many useful programs, And I wanted to share these with my friends but in order to do that I first need to install that programming language on their computer. so I have been wondering that how could I code programs that don't require me to install something else.
meaning in order to run that program you only need to run a setup once and then you can use that program.

Related

How can a WiX based windows setup be limited to install only silently?

WiX can be installed silently by passing in a flag, but can I design the setup in such a way that it will run silently by default, require the flag, or otherwise prevent the user from attempting to install it non silently?
reason: This is to be released as a distributable for other software projects to include in their application, and we would like to avoid any expectation of localizations/ui issues/ etc.
You can compile a setup without a GUI at all. Then it will install directly when you launch the MSI I believe. Frankly I am not sure if this works properly with the UAC (elevation prompt), but I think it does.
As I answered in your other question, you can also use a merge module to allow your setup content to be merged into another setup at build / compile time instead of running as a setup in its own right.
If you want an MSI, I don't think it matters that much if you do not localize the setup to all kinds of languages. Just link a default English GUI. You can even include ready-made translations for several languages as far as I know (been ages since I have done real localization).
The real point is that your customer can kick off your install in silent mode easily from within their own setup.exe, so your setup GUI will never be shown - just make sure to document this for your customers so they know how to do it.

What do I have to do next to get my g++ compiled executable to run on other windows machines?

So, I've been looking and looking and looking. It's odd to me that is not something programmers like to readily answer. I don't understand why. What are they afraid of? Is it a pride thing, that we should somehow be able to guess at it ourselves, like pull it out of the dark somehow like they did at one time maybe? I don't get it.
I see people asking this question all over the internet, and every single time, it never fails, nobody actually answers the question. They just respond by asking things like "what's the error" all of the time.
What do you think the error is? It's that the person hasn't yet done the extra steps to make their executable run on other windows machines.
My issue:
I'm running g++ from the command prompt. I installed cygwin and mingw, and then I added the bin folder of the one I want to use to my path variable in windows. I do NOT include both bin folders. Only the one the that I am using at the time. I've been alternating between the two in an effort to figure out how I'm supposed to make my small simple C++ program run on another windows machine. One of the forums, some post said that he uses mingw, presumably to avoid the problem of needing cygwin dll's . . . or something . . . I didn't quite understand.
Quick intro:
The program is simply a small program created from another similar program in a textbook to make the computer guess a number I have picked 1 through 100. I wanted to compile, and then put that executable on my sister or mom's computer and let them play so they can say, "How cool, you created that?"
I mean, at some point, I want to actually learn how to do this. Maybe I'm just a moron, but it just seems natural to me that at some point people want their executables to work on other machines. Seems like a simple question that every programmer must have at one point wondered about, but nobody seems to realize in all of these people asking this question that they simply need to know what the next step is.
So of course, I'm running into the issue that they don't have the dll's that are provided by mingw and cygwin. Naturally, this is because most Windows machines are not going to have those dll's.
So, what do I need to do to make my executable capable of running on other windows machines? Right now, I'm just talking about Windows 10. I use Windows 10 pro, latest build as of June 2018, and they use Windows 10 Home, probably the latest build since they do automatic updates. (Not sure if the normally forced install of the latest build has occurred, but I think it has.)
So, to anyone who read that and answers, thank you.

Ruby Script to Runnable File

I'm a programming newb trying to send a Ruby script/mini-game thing to his teacher that can be ran by doubleclick. JRuby seems like a possible solution, as does Warbler, but I can't seem to figure either of those out. It doesn't have to be a specific filetype if it can be run without the terminal, just by clicking on it. Another possible solution is creating a shell script that runs the file as shown here, but I think that only works if you tell the computer running the script that it can be doubleclicked. It may even be possible to run by doing something in the Ruby file itself, but I am too inexperienced to know.
Thanks in advance for your answers!
When you say that only works if you tell the computer running the script that it can be doubleclicked, that isn't entirely true. If you email the file by itself, it might have its permissions removed, but if you package it up into a zip, then you're teacher shouldn't need to run chmod again.
Anyway, I'm not sure about the windows support for this approach (Ruby programmers tend to use Unix systems like OSX or Linux).
To make a cross platform executable, take a look at this question, which links to some packages such as "Ruby Ship"

why is program installation a process?

this may very well be a stupid question, but when i was asked something much simplier then this, i didn't have much of an answer...
why are most programs installed via some several step process of adding and changing and whatnot? we have programs that can be ran straight from a self contained executable, but a large portion of programs cannot. why is this? is it due to the programs growing exponentially by needing to include everything within itself? if that is the case, it is so difficult to design an OS from the ground up to be completely modular... ie. having an OS with a standard set of modules, that can be accessed and used from any 'standalone program' that doesn't require a lengthy install.
thanks
David Kirsch.
It's really a question of how complicated your program is. Many windows programs have dependencies on Visual Studio C++, .Net, Java etc. runtimes that are not delivered by the substrate OS. This means that for your programs to work those components must already be on the system.
If those prerequisites are missing, then your program won't even load, so you can't even get your program to check for them and tell the user to go and get them. This is where an installer comes in, as it generally doesn't have any prerequisites, but is able to sniff out the ones your progam needs and can either tell you to go and get them, or try to install them for you.
Also many programs need some logical, as well as physical, installation work to be done as part of deployment. This might mean registry changes (such as COM registration), changes to IIS (setting up a web application and virtual directory), or changes to the Service Control manager (setting up Windows Services).
In short, unless your program is extremely self-contained and has no external dependencies, an installer is the only way to get your application on the desktop.

What kind of Tools Exist for Setup Automation in Windows?

I'm looking for some type of solution for getting a window dev environment up and running quickly.
Currently we have a large setup document (50+ pages) for doing an install, and I'd like to automate this process as much as possible. The doc includes things like updating environment variables, installing programs, downloading source code, etc.
I know that the majority of these tasks can be done with a batch script, but that's kind of ugly and a lot of work. And while virtualization would be nice, it is not an option for us.
I'm wondering if anything exists for Windows that would make this less tedious. Something like Ruby's Chef would be great. Does anything like this exist for windows?
Well there is Pkgmgr.exe for unattended installation of windows components if you mix it with a powershell script you should be able to get what you want but it wont be as easy as using Chef. Check here for an example of what you can do with Pkgmgr.exe http://learn.iis.net/page.aspx/133/using-unattended-setup-to-install-iis-70/
System Center is the Microsoft way of pushing out standard desktops. It's quite heavyweight mind you.
You could use VMWare for this. Just create a base machine image, with the necessary stuff installed, and point people at the VM.

Resources