2013-05-19 2 views
-4

Я попытался решение от везде, но я получил в никуда Heres вам кодХочет сделать кнопку, чтобы открыть Google Chrome, Cinema 4D и т.д. в WPF

namespace Elysium.MetroWindow 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Elysium.Controls.Window 
    { 
     public MainWindow() {} 
    } 
} 

И это меню правой кнопки мыши часть (Сво Elysium.Demo программы, если кто-то хочет, чтобы увидеть полное приложение)

<Controls:Window.ApplicationBar> 
    <Controls:ApplicationBar> 
    <!-- Right Click on the UI to open Application Bar --> 
    <Controls:DropDownCommandButton Header="Google Chrome" 
            ClickMode="Press" /> 
    <Controls:DropDownCommandButton Header="Skype" 
            ClickMode="Press" /> 
    <Controls:DropDownCommandButton Header="Microsoft Visual 2012" 
            ClickMode="Press" /> 
    <Controls:DropDownCommandButton Header="Minecraft" 
            ClickMode="Press" /> 
    <Controls:DropDownCommandButton Header="Cinema 4D" 
            ClickMode="Press" /> 
    <Controls:DropDownCommandButton Header="Counter Strike 1.6" 
            ClickMode="Press" /> 
    </Controls:ApplicationBar> 
</Controls:Window.ApplicationBar> 

Итак, как я могу добавить меню правой кнопкой мыши, чтобы открыть программу я Пробовал Process.Start ("C: \ AppPath \ APPNAME. exe ") И кнопка

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    Process Chrome = new Process(); 

    Chrome.StartInfo.FileName = "C:\Program Files\Google\Chrome\Application\chrome.exe"; // Needs to be full path 
    Chrome.StartInfo.Arguments = ""; // If you have any arguments 

    bool result = Chrome.Start(); 
} 
     } 
} 
+1

'бла-бла blah'? В самом деле? – Basic

+0

Я отредактировал его. – Basic

+2

Добавьте @ непосредственно перед «C: \ Program ...». – rene

ответ

0

Вы не представили никакой информации о том, что пошло не так, или если произошла ошибка, но я попробовал ее (обратите внимание, что мой хром-каталог был другим, поэтому дважды проверьте имя файла) и добавив в файл @ имя работало.

Process Chrome = new Process(); //Create the process 
    Chrome.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe"; // Needs to be full path 
    Chrome.StartInfo.Arguments = ""; // If you have any arguments 
    Chrome.Start(); 

@ символ позволяет использовать зарезервированное ключевое слово, но в данном примере позволяет задавать строку без необходимости, чтобы избежать каких-либо символов (с использованием // вместо /)

Также не уверен, что bool result было для, но это было не нужно прямо сейчас.

Более подробную информацию о Process

+0

Я новичок, если кто-то не понял, НО не было ошибки, когда я отлаживал ее после того, как я нажал кнопку. (в режиме отладки) Сначала я думал, что это ошибка, что я не добавил тег Name = "", но после того, как я назвал кнопку все еще ничего, я могу предоставить вам ссылку с проектом, если это запрошено. –

+0

Добавьте точку останова и посмотрите, вызван ли метод. (На одной и той же линии, идти к маленькой серой панели слева и нажмите на нее) – Cyral

+0

имен Elysium.MetroWindow { ///

/// Взаимодействие логика MainWindow.xaml /// общественный частичный класс MainWindow: Elysium.Controls.Window { общественных MainWindow() { } частная пустота button1_Click (объект отправителя, RoutedEventArgs е) { Процесс Хром = новый процесс(); Chrome.StartInfo.FileName = @ "C: \ Program Files \ Google \ Chrome \ Application \ chrome.exe" break; } } } Вы заинтересованы в просмотре всего проекта? –