从C#中的代码启动Windows 8应用程序

时间:2014-06-22 01:32:40

标签: c# windows-8

所以,我正在尝试制作一个通用语音控件类的应用程序(在Windows窗体中)。我想知道是否可以从代码启动Windows 8应用程序。我猜测System.Diagnostics.Process.Start不起作用,因为当我尝试从可执行文件运行Windows 8应用程序时,它不会启动,说它“需要从一个框架启动”(我想,我从记忆中回忆起来。这里有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

实际上,我找到了自己问题的答案。有一个名为Start的命令实际上就是这样做的。例如,我只是做了“启动MicrosoftMusic:”并且这样做了(是的冒号就是故意的)。

答案 1 :(得分:0)

我有使用开发模拟器执行它的代码,但它不会帮助你。但是我做了一些搜索,我发现了这个:IApplicationActivationManager::ActivateApplication in C#?

这看起来非常熟悉,因为它与我的模拟器代码完全相同。我没有测试过,但你一定要试一试。

你可能最不愿意的是这个“AppUserModelId”的事情。手动浏览注册表并不容易。使用这种代码变得更容易:

RegistryKey packageKey = Registry.ClassesRoot.OpenSubKey(@"ActivatableClasses\Package");
appKey = packageKey.OpenSubKey(packageKey.GetSubKeyNames().First(x => x.StartsWith(appName)));
var serverNameKey = appKey.OpenSubKey(@"ActivatableClassId\App");
var serverName = (string)serverNameKey.GetValue("Server");
var serverKey = appKey.OpenSubKey("Server\\" + serverName);
var AppUserModelId = (string)serverKey.GetValue("AppUserModelId");