how to get list of installed cultures on computer? - culture

users usually install 2 or 3 cultures on their computers. we can reach current and all installed language with:
InputLanguage.CurrentInputLanguage;
InputLanguage.InstalledInputLanguages;
we can also reach current culture with:
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
but is there a way for found out which cultures they installed. or the only way is to change language that he\she installed and get cultures. I think there is a better an smarter way.

Related

How to merge dependency into .Appx to avoid -DependencyPath argument

I have a large win32 program consisting of a mixture of native and managed code.
I would like to put it into a single .Appx file for simple installation on Windows 10. I don't want to put it in the Windows Store - I simply want to replace the old installer with an .Appx file.
Using the DesktopAppConverter I have converted the program to an .Appx.
My problem is that the DesktopAppConverter adds a dependency on 'Microsoft.VCLibs.140.00.UWPDesktop' which means that I have to distribute both my .appx and Microsoft.VCLibs.x64.14.00.Desktop.appx. So the user can no longer just click my .appx file but has to run this from PowerShell:
Add-AppxPackage .\MyApp.appx -DependencyPath .\Microsoft.VCLibs.x64.14.00.Desktop.appx
Is there a way that I can "merge" the dependency into a single .appx that the user can just double click to install?
Microsoft documents support for appx bundles, you could try that.
Another option, more risky, would be to assume that such a dependency is already present on the machine (it is quite common so it might be installed by other packages from the store). In this case you can edit your appx package and remove the dependency from it.
Advanced Installer can import appx packages and provide an easy to use GUI to edit their content, with just a few clicks you can remove/add your dependencies.
Advanced Installer UWP support - dedicated GUI editor for package contents, convert from old MSI/EXE to UWP, create UWP and WSA packages...
Disclaimer: I am part of the team building Advanced Installer over the last 14 years.

Is there an offline MinGW installer?

I am learning C and I want to install MinGW on my laptop. The MinGW installer is a web-installer, it requires the computer to have access to the internet when installing. But the problem is that my computer's not connected to the internet. So it can't be installed.
So I am thinking of downloading the complete offline installer on my smart-phone and transfering it to my PC through blue-tooth.
I have already tried TDM-GCC, but even that requires me to download somthing.
So is there an offline installer to MinGW? If yes where can I get it?
I did not find an offline installer for MinGW,but instead I found a better Windows port; which is MinGW-W64
From http://mingw-w64.yaxm.org/doku.php:
Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.
Now to answer this question: it has to be mannually installed by downloading the zip file. It won't require additional download.
You can download it from link : https://github.com/jonasstrandstedt/MinGW
You need to extract the MinGW folder in C:\ eg: c:\MinGW . Then what you need to follow the steps given in the link above. In CodeBlock IDE go to settings>compiler>Tochain Executables. There you need to click on auto detect or specify the folder manually.
The most direct answer to the question "Is there an offline MinGW installer?" is "maybe, but it would be a snapshot from the past, and it's almost certainly not up-to-date with the latest available released versions." The individual packages are made available (almost) as soon as they're released, so capturing everything in a self-contained installer is a moving target.
But, you can use the standard installer offline with a bit of prep work if you use MSYS2's pacman, which manages dependencies and grabs all the right versions for you.
The details are given in an answer to another question (https://stackoverflow.com/a/46791235/).

Where does Smartgit store project settings on Windows 7?

I was happy to find that upgrading to the new version of Smargit and removing the previous one, it still keeps my projects settings (as expected).
Yet, I did not found this setting stored in the users AppData folder. So, I was wondering where does Smartgit store project settings on Windows 7?
On all Windows platforms, settings are stored in %APPDATA%\syntevo\SmartGit\<version>, unless you have specified a different location by using -Dsmartgit.settings in bin\smartgithg.vmoptions.

Specifying Windows Versions (or Specific Machines) in Selenium Grid

I'm setting up a Selenium Grid in order to cover a test matrix that needs to comprehensively cover the following combinations: Three servers (windows server 2003, 2008, and 2012) that provide identical services and ten clients (of flavors XP, win7, win8, and win8.1) that will be accessing each of the three servers to perform nearly identical tests. The three servers part is most likely irrelevant to this question, but I threw it in for context's sake. I'm configuring which servers to use via TestNG DataProviders.
The catch is that I want to test the interactions not just between different browsers and browser versions and operating systems, but also all four versions of windows.
From what I can tell the DesiredCapabilities class will only allow me to specify between between XP, VISTA, and WINDOWS enums. I have found this question and it has been answered Selenium Grid: Capabilities and Platform.WINDOWS7?
However I wanted to post a new question for three reasons. It deals with an old version of selenium. I'm using 2.39.0 and the solution references version 2.15. Also, I have four windows platforms, so I can't use the suggested solution unless I gut out part of my test matrix. That is undesirable, but not impossible. Finally, while I have a decent understanding of the trick being used, my understanding of how overriding the enum might affect my tests is pretty big unknown.
One possible workaround I've thought of depends on how the enum is used. If it just uses the enum to search all the nodes to find a machine that has been set up with some specified capability I could assign any of the remaining platform flags to my fourth OS profile. For instance, assign the XP flag to winXP, WINDOWS flag to win7, VISTA to win8, and finally the UNIX flag to win8.1. But if the enum is used for more intense purposes I'm up the proverbial creek. Also, defining a windows box with a UNIX platform flag just seems like bad programming practice, even if it were to work just fine.
I guess what I really want is way to tell the grid "Run this test on the machine with this IP address" rather than "run this test on a machine that matches these capabilities." Has this functionality been added to selenium, or is there a workaround I'm missing?
Thanks,
Jon
You can possibly specify the IP in the node configuration json file on your node machine:
{
"capabilities":
[
{
"platform": "WINDOWS",
"browserName": "firefox",
"maxInstances": 1,
"seleniumProtocol": "WebDriver",
"nodeip": "192.168.0.123"
}
],
"configuration":
{
"proxy":"org.openqa.grid.selenium.proxy.WebDriverRemoteProxy",
"maxSession":1,
"url":"http://192.168.0.99:4444/wd/hub"
}
}
And then request the specific node:
DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("platform", Platform.WINDOWS);
caps.setCapability("nodeip", "192.168.0.123");
RemoteWebDriver driver = new RemoteWebDriver(new URL(hubUrl), caps);
Alternatively, you can possibly use the applicationName capability or the Browser Version capability to specify your IP/custom value as selenium grid does a simple string match on these. See the below google group discussions on using existing capabilities for identifying a specific node:
Using the applicationName capability
Using the Browser Version capability

Checking installation integrity with installshield

For Linux packages, specifically RPMs with stored checksums, we always can check two things: the contents of package is ok and the installation from this package is ok. When someone modifies parts of the installation he shouldn't, we can see it by running rpm -Vp my-precious-package. In our busyness it is not only recommended, but obligatory to provide our packages with tools for this purpose and for Linux these are just simple bash scripts.
Now I have to do something similar for Windows. Basically what I want is to provide some batch file by running which one can get assured, the installation is the same as it meant to be in the package. I'm using InstallShield for packaging, and yet it has some great visual tools, I still haven't found a way to verify package checksums in the command line.
Is it even possible, or should I reinvent the wheel writing my own checking utils?
Take a look at MakeCat and SignTool from Microsoft, both in SDK
http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387764%28v=vs.85%29.aspx
Windows Installer has a feature called resiliency that supports auto repair of products and there are ways to call it for self checks only. (This is assuming by InstallShield you mean Windows Installer based projects.)
Here's a couple links to read to get you started:
INFO: Description of Resiliency in Windows Installer
Resiliency
Application Resiliency: Unlock the Hidden Features of Windows Installer
MsiProvideComponent function (See dwInstallMode flags)
This also assumes all files are key files. Companion files are not managed by the installer. Also changes performed by custom actions outside of the installer aren't managed.

Resources