I have noticed that some browsers via a build in development feature allow you to choose different user agents.
Does this mean that they change their rendering engine?
Say for example, if I set Safari's user agent to internet explorer - will that then change the rending engine from webkit to trident?
At the moment on my mac I have Safari, Chrome, Firefox and iCab installed. I would imagine they would represent the different engine's better than the user agent function built in.
However you are only limited to installing 1 version of each unless you go the virtual machine or dual boot way.
So what is your advice? Run multiple virtual machine and of course the extra licenses to do it legal will need to be purchased. or stick with the user agent function built in and that gives a good enough interperatation of the differences??
Cheers Jeff
Say for example, if I set Safari's user agent to internet explorer - will that then change the rending engine from webkit to trident?
No. A user agent is just a string that the browser sends to identify itself. I could set my user agent to cheeseburger if I wanted. It won't use a cheeseburger to try and render the page.
Officially, the only correct way to run Internet Explorer is on Windows - which would require a Windows installation - a VM is a perfect valid and common solution. On a Mac you also have the option of Bootcamp.
There are other services, like http://browsershots.org/, that allow you to specify a URL and they will send you a screenshot of what the URL likes like in a particular browser. I typically don't like these solutions because they are slow, you don't have any debugging tools, etc.
the user agent setting in safari (and other browsers) only spoofs the user agent, it doesn't change the rendering engine. you can use that spoofing, to get for example the iPhone version of a webpage in your desktop safari. to check your page in different browsers, you could use some web service like http://browsershots.org/ (thats just the first google result) or setup an array of virtual machines. we do the latter, which ineed costs you 2-3 windows licenses, but you can pack a lot of browsers into one virtual machine, just distribute the different versions among different machines
Related
I have been hired to work with multiple clients as once using IE on Windows 7. I just want to ask if there is any way to run multiple IE's at once packed with several tabs each individually divided across them.
I would like to run each IE as separated unit for each client i am working with. One IE instance could have client A stuff and second client B etc.
I really would like to click instances on task bar to load each browser config to match current client.
EDIT: Just to clarify i am doing customer service which gives me different tools for different services. I would like to organize them in different IE windows.
One way to do it would be using virtual machines for each IE instance - that way you get as "real" of an IE as possible.
Microsoft has VMs available with versions of IE 8+ and Windows 7+:
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/windows/
This is probably "no" but wanted to check.
Is there any way for a website to detect whether the Chrome browser is installed on a Windows PC?
Would be acceptable if it only worked within IE (in case IE has some magical access to more info in the Registry than other browsers)
It appears that this is possible to do via an ActiveX plugin (which checks for the presence of certain installed registry keys), but this is normally not something that a web application should be doing, and I would recommend against it. See the following:
How to detect whether a particular software is installed in windows?
I am automating the setup screen of one product which was developed in .Net. When I was spying the setup dialog in one machine it was identified as SWFObject and another machine it was identified as WinObject. Not sure how to overcome this problem.
Make sure that you've activated the .NET add-on in the add-on manager (on the second machine) and that the application is included in the Record and Run Settings.
I need to write an application that can detect if the "Bing - Get me there" application is installed on the current phone and if so, launch it.
Is this possible? The app would need to do this for other external applications as well, so a generic method or interface for this would be helpful.
Applications run in a sandbox on Windows Phone and there is no way to tell if other applications are installed unless you are writing both of them and you use a method to announce to other applications that you are installed and they know how to read that announcement.
2 approaches to such announcements would be:
Have both (all) apps synchronise with a web server and report which devices they have been installed on. The apps can the query which other apps have been installed on that device.
Have all apps write a file to a location where all apps can access. The only place to do this is the PicturesLibrary so you have to embed the identifier in the name of the image or in its contents and be able to query all images to identify the other installed apps. The user could manually delete any images you create in this way though.
Beware, neither method can tell if the other app has subsequently been uninstalled though so this is far from foolproof.
As far as I know, there's no way to do that.
Applications on Windows Phone run in complete isolation, and can not act with other applications, other than some highly specialized apps (i.e. for playing media).
I'm looking to determine if our application is running on a XenDesktop session rather than locally. Here is what I have found so far:
We currently have code to detect a Citrix XenApp session similar to the solution mentioned by Helge Klein in "API for Determining if App is Running on Citrix or Terminal Services".
Sadly that solution in a XenDesktop environment is returning back a WTSClientProtocolType of 0 which signifies a local console session.
In response to the same question Josh Weatherly mentioned checking the sessionname environment variable.
However a quick console check with echo %sessionname% on the XenDesktop environment returns back 'Console'.
From "Detect citrix “application mode”?" John Sibly suggested a solution for detecting a remote session (not Citrix in particular):
GetSystemMetrics(SM_REMOTESESSION) however returns 0 which also means that it is a local session.
Does anyone know of a way to detect that it is a XenDesktop session? So far as you can see all my attempts are returning that the session is a local console session.
I'm using XenDesktop Express 5.5, accessing the desktop using the Citrix Receiver Web Plug-In.
If you are using XenDesktop for VDI, then as far as the application is concerned, the application is executing locally. VDI, or virtual desktop infrastructure, consists of delivering the GUI from a full featured desktop operating system to a remote device. Typically, the desktop O/S executes in a virtual machine on a hypervisor in a data center, and the GUI is transmitted to the remote device using Citrix' ICA stack. For example, this happens in the pooled desktops scenario.
XenApp offers virtual desktops, which is a slightly different concept. Again, the desktop is delivered to a remote device using the ICA stack. However, the desktop is no longer running on a dedicated O/S. Rather, it is one of a number of user sessions on a single Windows Server. There may be any number of users logged on to that server. This places limits on the applications that can be run, which is why applications might want to know that they are on a multi-user O/S.
What you might try to do is determine whether the GUI is being delivered remotely using the ICA stack. A simple check would involve looking for the "ProticaService", which is responsible for implementing the ICA stack.
Alternatively, you may be trying to determine if your machine is running in a VM or native to a machine. Besides the pooled scenario described in the first paragraph, XenDesktop can deliver desktop running native. This overcomes limits on virtualision I/O devices such as graphics cards used by CAD applications. In this case, you need to rule out the presence of a VMM, or hypervisor.
I have updated my answer linked to in the question with a description of how to determine the remoting protocol type in XenDesktop sessions.
You need the (not really well documented) function WFGetActiveProtocol from Citrix' WFAPI SDK. Proceed as follows:
Download the SDK (link)
Install WFApiSDK64-65.msi
In your C++ project include wfapi.h and link to wfapi[64].lib
Use the undocumented function WFGetActiveProtocol
More detail and sample code here.