Thanks to Microsoft MVA, some options were presented to us (you just have to fiddle them out):
Solution 1 (recommended by this Microsoft MVA tutorial):
If you want to start a specific application, you have to create a URI scheme registration, that only the specific application you want to start can handle.
Using the Launcher
, you can call a specified URI that will only be handled by one application (e.g. my-cool-uri-scheme://start?param1=123¶m2=ABC
).
Note: The user will always have the final choice which app to start with a specified URI (that's why this solution is recommended by Microsoft).
The following solutions will most likely only work in enterprise environments!
Solution 2 (clean workaround):
You have to write a proxy Windows application.
This proxy application (almost as in solution #1) registers itself with a specific file extension.
From your UWP app, you then call an imaginary file path containing your parameters (e.g. C:/Users/CURRENTUSER/AppData/Roaming/YOURAPP/PARAM1/PARAM2/PARAM3/open.my-cool-extension
) - or event the file itself containing the parameters (e.g. XML or RESTful).
The handling application will then use those information to start a specific application (using Process.Start
) with your given parameters.
Solution 3 (dirty workaround):
You have to write an observing Windows application.
This application creates a FileSystemWatcher
listening to a specific folder. So why is this the dirty workaround? Because you...
- Have to create a
FileSystemWatcher
permanently watching a specific drop directory for you UWP app.
- The user has no control about what will happen (no possibility to override the application to start)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…