For example, I downloaded the "VS 2011 preview" web installer by Metro style IE, after this, I clicked "Run" and Metro style IE launched the Desktop style installer for me.
The APIs that I found are LaunchDefaultProgram()/LaunchDefaultProgramForFile(). But by this two APIs, there must be related file types(.exe is not supported) or protocols.
How can a Metro app launch a Desktop app directly just as Metro IE does ?
- Moved by Keith-Microsoft Support Thursday, September 22, 2011 1:58 PM (From:Windows Developer Preview: General OS questions )
Which pretty much says that you won't be allowing 3rd party Metro-style browsers or file-managers or .. ?
What is the point of having guidelines if MS' own apps break them (IE should not be a special app just by virtue of being IE)?
I agree 100% with this: privileged shortcuts for "special apps" are always bad (and I don't care how much privileged is IE, it is still a Metro app).
Wouldn't be possible to have a couple of new contracts for this? Two for Metro apps: a contract that will allow an application to be invoked programmatically with some parameters, and another contract to actually launch such an app. A third contract would allow Metro apps to invoke desktop apps (similar to shell execute).
The user will be in control anyway because he has to agree to the contracts declared in the app manifest. Come on guys.
- Edited by Marco Tagliaferri Saturday, September 24, 2011 10:51 AM
To play devil's advocate here... how does your metro app (deployed through the store independent of any desktop apps) know where (or even if) the desktop app is installed? Even if you were able to launch a desktop app, other aspects of the sandbox would get in the way of doing so effectively
That's a good point. I would think it has to be part of the contract which, perhaps, should also include the name (Guid or whatever) of the application (either Metro or Desktop) that it needs to launch in the manifest file so that it won't be able to call any app, just the one(s) declared.
We are talking simple scenarios here, i.e.: I am in a picture browser Metro app and I want to launch my companion picture editor (which is a desktop application) by passing the path to a file in the user's picture library as a parameter.
Metro applications are very focused and I see the need for many applications (especially LoB) to be able to launch a more complex UI.
A special app? I'm presuming the next version of Office will include some sort of Metro app or apps (a tablet OS without, say, an email client, is going to look pretty lame).
So let's say I'm in my new Metro version of Outlook and someone has sent me an email with a Word doc attached. What happens if I want to edit that doc?
I see three options for how that could work:
1. I have to save the doc somewhere and then launch the desktop version of Word to edit it (lame)
2. MS are completely rewriting Word (and Excel, PowerPoint etc.) to run entirely in Metro (unlikely and very risky)
3. Metro Outlook is able to launch desktop Word (sensible and the most likely option)
Exactly how many 'special apps' do you think there are going to be, and how long do you expect to keep the existing developer community on board while they are locked out of basic API functionality like this?
- Edited by n4blue Monday, October 03, 2011 2:50 PM
From your description it seems you should create a standard application that responds to touch. You can have touch enabled applications in Windows 7 today and you could certainly create a UI optimized for touch. In your sample case you presented if you have dependencies that require links and functionality to a desktop app, you would not gain anything by splitting this into a Metro style app with a desktop app supporting it in the background correct?
Jeff Sanders (MSFT)
making a proxy native application is the best way I could think of.
The trick here is simple and basic
1. Metro create a text file with some sort of command
2. Proxy monitors the file changes
3. Once changed, proxy reads that file and process it
4. Then proxy executes the file needed to run.
check here for more information and code sample