How to find Windows Script Host languages installed - scripting

How do I find out what WSH (Active Scripting) languages are installed on a machine?
I know that JScript and VBScript are installed by default, but how do I find out if, for example, Python is installed for WSH?

EDIT
Turns out that regedit comes handy here. If you search for all OLEScript keys under Computer\HKEY_CLASSES_ROOT\CLSID, you will find their parent class IDs.
You can then identify the DLLs that implement the installed scripting engines (e.g. jscript.dll, vbscript.dll) by looking at the corresponding InprocServer32 keys under each class ID.
I suspect that's what TC (described below) is doing.
ORIGINAL
I initially (see edit above) used Take Command shell replacement (thankfully, free 30 day trial) which has a script command that lists the installed scripting engines (I was surprised to find e.g. XML to be considered a scripting engine).
Not quite what I had in mind (requires a proprietary, 3rd party payware to be installed; quite pricey at $100) but it did allow me to answer my original question: what WSH scripting engines are installed.

Related

How to differentiate between Adobe Acrobat Standard vs Professional in SCCM

i'm currently in the middle of a software license review for my organization, and I am attempting to document how many instances of paid software we have installed on end-user machines.
For the example I used in the title (with Adobe Acrobat Standard vs Professional) where there doesn't seem to be any difference in the installation folder/exe, how would you suggest demarcating this within SCCM to pull the correct results?
I don't know which version of these two products you use because on our systems they have quite different installation paths (%ProgramFiles%\adobe reader vs acrobat) as well as file names (AcroRd32.exe vs Acrobat.exe).
However another method to differentiate would be the "File Description" of the executable. This or the "Product Name" should be different in any case. This is something you would see in any file inventory.
Another approach would be to rely on the data the sccm gathers regarding the entry of a software in the Add/Remove programs section of the computer. This is basically a registry entry in HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall and will most probably also show a different name for those softwares.
As you included the SQL tag in the questions I assume you want to query the database for this info. In that case a view for basic file info would be:
v_GS_SoftwareFile one for the Add/Remove Programs would be v_GS_ADD_REMOVE_PROGRAMS for example.

how to create a localized windows installer

How do I create a localized windows installer package for my WPF application, it has support for 6 languages and I want to have EULA document being localized when user installs the application
I see you tagged Wix and InstallShield, so maybe you are open to try other tools too. Advanced Installer (disclaimer, I work on its development) has in the Professional edition support for multilingual packages.
You just select the languages desired from Translations page, then go to Dialogs page and add a new predefined dialog, select "LicenseAgreementDlg". Advanced Installer will see that you have multiple languages in the package so it will ask you select the EULA file for each language. In roughly 10 minutes you will get your first installer up and running.
I am not quite up to speed on WIX and localization (language support). This online tutorial is a good starting point for you: http://wix.tramontana.co.hu/tutorial/user-interface/do-you-speak-english . Just read through the different User Interface sections.
I don't know which bundling you intend, but in my experience a multi-language setup is less desirable than compiling one MSI file per language. This is easier and faster to compile and work with (very important for large packages), more flexible if you need to bug fix something in a single language, allows you to add new languages easily without full UAT for all languages, and you can deliver the English version as soon as the code is done without waiting several days or weeks for localized files (if any are required).
If you plan to use Windows Installer XML, you can check my answer here. Note that the method is undocumented and not supported by Microsoft, however MS uses it itself and it is working very well.
Just provide a different file for every language transform to the WixVariable WixUILicenseRtf.

What VB or VBA interpreters or compilers are available for the Windows operating system?

I am looking for an interpreter (compiler would work too) for Visual Basic or VBA. I am not looking for any kind of UI support. Basically, I have a series of somewhat complex VBA modules which make no reference to any external DLLs and make no use of any user interfaces. Is there any such tool available short of having Microsoft Office or Microsoft Visual Basic for the Windows operating system?
VBA only exists as an embedded "macro language" inside a host application like Excel. At one time you could even buy the SDK to embed VBA in your own applications, but there was never any "stand alone VBA."
VBScript is close to VBA and VB in syntax and semantics, but it also requires a host. Common desktop hosts include WSH, MSHTA, and the Vista/Win7 "gadget" framework. That's probably your best bet if it meets your needs.
It is remotely possible to do what you want using VB5CCE (Control Creation Edition) if you can find it. This was free, but could not compile to EXEs. It might have worked as an interpreter however by running it with the /run switch. I'm not certain of that though.
There are 3rd party freebies as well such as Jabaco which uses a very VB/VBA-like syntax.
Update: VB5CCE does not support the /run switch.
This might be worth a peek if VB.NET is a fit. Visual Studio Express ... I'm not sure what the free version leaves out though.
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express

Thunderbird scripting

I need to process a number of messages in my Thunderbird.app (Mac OS X Snow Leopard, Intel Core 2 Duo), delete a few based on some criteria, export some others, move a small part of them to a special folder and create a filing hierarchy to go with it all - programmatically.
With Outlook I used to enjoy VBScript + the COM object model: it would do all of the above simply and intuitively.
What can I use to achieve the same with Thunderbird?
If multiple options are available, here are my current preferences in terms of languages (although I can adapt to most things): Python, C++, AppleScript, PHP, Perl, Bash, ...
If I need to move to a Windows box to use .NET and the like, I can (yet I'd imaging the most popular bindings come from the open-source world?!) If there was a command-line tool that did what I need, I'd use that! (thunderbird.sh show messages; thunderbird.sh create folder X as child of folder Y;)
You can develop Thunderbird extensions in a similar way to Firefox extensions in XUL and Javascript.
Try this tutorial.
This tutorial will introduce you to the components of a Thunderbird extension and will show you how to build your own.
You could also look at the tbscript plugin, although it does have external dependencies - it uses Python.
The tutorial linked to in the most popular answer as of today still works, but is outdated.
For current versions of Thunderbird, documentation is at https://developer.thunderbird.net. This has an add-on page that comes with a tutorial for developing a "Hello World" MailExtension.
The MailExtension API is new for Thunderbird 68 (although some parts were published for earlier versions) and allows one to write JavaScript to e.g. handle messages.
If you need a general purpose GUI scripting solution, try Autohotkey, it's very calable.

License problem embedding Mono?

I'd like to embed Mono into an .exe file but the problem is the license, because a LGPL library can only be linked with LGPL code. However, I'd like to build a commercial app, so I ask if is possible to use a stub that launches a DLL version of the Mono runtime and executes my app. Or do you know a better way to do this?
I need a cross-platform framework and Mono seems good, but there are some problem to pack it in one file, so you know a "free" way to do this?
I'm not sure where you have the idea that you must LGPL your app. From Wikipedia:
The main difference between the GPL
and the LGPL is that the latter can be
linked to (in the case of a library,
'used by') a non-(L)GPLed program,
regardless of whether it is free
software or proprietary software.1
This non-(L)GPLed program can then be
distributed under any chosen terms if
it is not a derivative work.
From the LGPL license:
You may copy and distribute the Library (or a portion or derivative of
it, under Section 2) in object code or
executable form under the terms of
Sections 1 and 2 above provided that
you accompany it with the complete
corresponding machine-readable source
code, which must be distributed under
the terms of Sections 1 and 2 above on
a medium customarily used for software
interchange.
If distribution of object code is made
by offering access to copy from a
designated place, then offering
equivalent access to copy the source
code from the same place satisfies the
requirement to distribute the source
code, even though third parties are
not compelled to copy the source along
with the object code.
That says that you merely need to provide access to the source code of the library if it's distributed in binary form. Just make sure you're not creating a derivative work and instead are merely linking to the lib.
If you're not content with LGPL, then you could always purchase a license from Novell.
From http://www.mono-project.com/License:
Mono is available to be licensed
commercially if the LGPL/GPL/X11
combination is not suitable for you.
Mono Tools for Visual Studio Ultimate
Edition includes a commercial
license to redistribute Mono under
non-LGPL terms on Windows, Linux, and
Mac OS X PCs for products with volumes
under 100,000 and revenues under $2M
annually. If your organization intends
to redistribute software which embeds
or bundles Mono, but is unable to
comply with the terms of GNU LGPL v2,
the Ultimate Edition may be right for
you.
For other licensing options, contact
us.