it-swarm.com.ru

Запуск настольного приложения с приложением в стиле Metro

Есть ли способ запустить настольное приложение из приложения в стиле Metro в Windows 8? Я пытаюсь создать несколько простых ярлыков для настольных приложений, чтобы заменить значки рабочего стола на стартовом экране, которые выглядят неуместно.

Мне просто нужно что-то очень простое, желательно в C #, чтобы открыть приложение, как только приложение загрузится. Я планирую сделать эти ярлыки для некоторых игр, фотошопа и т.д., А не всего, что я сделал сам. Они также предназначены только для личного использования, поэтому я могу использовать прямые пути к приложениям, таким как "C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe"

15
JacobTheDev

Если вы просто хотите запустить настольное приложение, такое как (блокнот, WordPad, Internet Explorer и т.д.), То перейдите через Методы процесса и Класс ProcessStartInfo

try
{
// Start the child process.
    Process p = new Process();
    // Redirect the output stream of the child process.
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.FileName = "C:\Path\To\App.exe";
    p.Start();
}

// Эксп 2

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
    startInfo.WindowStyle = ProcessWindowStyle.Minimized;

    Process.Start(startInfo);

    startInfo.Arguments = "www.northwindtraders.com";

    Process.Start(startInfo);
}

В приложении Windows 8 Metro я обнаружил это: Как запустить внешняя программа из Metro App .

Все приложения в стиле Metro работают в очень песочнице среды и нет возможности напрямую запустить внешнее приложение.

Вы можете попытаться использовать класс запуска - зависит от ваших потребностей предоставить вам возможное решение.

Проверь это:
Могу ли я использовать Windows.System.Launcher.LauncherDefaultProgram (Uri) для вызова другого приложения в стиле metro?

Ref:Как запустить приложение Desktop из приложения Metro?

Metro IE - это специальное приложение. Вы не можете вызвать исполняемый файл из приложений в стиле Metro.

Попробуйте это - я еще не тестировал, но, может быть, это поможет вам ..

Launcher.LaunchFileAsync

// Path to the file in the app package to launch
string exeFile = @"C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe";

var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(exeFile);

if (file != null)
{
    // Set the option to show the picker
    var options = new Windows.System.LauncherOptions();
    options.DisplayApplicationPicker = true;

    // Launch the retrieved file
    bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
    if (success)
    {
       // File launched
    }
    else
    {
       // File launch failed
    }
}
21
Niranjan Singh

Я нашел решение, которое подходит для меня. Я просто сделал пустой текстовый файл в своем приложении и назвал его launcher.yourappyouwanttostart, а затем выполнил его с 

Windows.System.Launcher.LaunchFileAsync("launcher.yourappyouwanttostart");

При первом запуске он запрашивает ассоциацию для этого файла, а затем вы выбираете исполняемый файл, который хотите запустить, и с этого момента каждый раз, когда вы запускаете этот файл, ваше приложение будет запускаться.

12
Christoph Weller

Я на самом деле не пробовал, если это работает, и это не очень красивое решение, но я думаю, что приложения в стиле Metro могут запускать URI. Затем вы можете создать настольную программу, зарегистрированную для пользовательской схемы URI, которая затем будет выполнять фактический запуск программы.

3
Apollo

Что вы можете сделать, это разместить внешнюю службу WCF на своем компьютере с отдельной установкой и подключиться к ней из приложения в стиле metro, используя localhost. Тогда вы можете делать практически все что угодно, включая Process.Start.

1
ghord

Я люблю простые вещи, поэтому я решил использовать это:

Process.Start("Explorer", "Shell:AppsFolder\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App")

Это запустит «новые» Sticky Notes, поставляемые с Anniversary Update до Windows 10, но оно работает со всеми другими приложениями «Metro», которые я тестировал…. Чтобы найти название приложения Metro, в проводнике Windows вы должны его найти. в оболочке: папка приложений с использованием столбца AppUserModelId.

0
Andrea Antonangeli