Добрый день.
Разрабатывают приложение работающее с условными файлами. И необходимо открывать файлы некоторого разрешение по дабл клику. Делать пока решил без записей в регистр, а просто через открыть с помощью и указанием пути до файла.
Код App.xaml.cs:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
if (e.Args.Length != 0)
{
Uri uri = new Uri(e.Args[0]);
this.Properties["ArbitraryArgName"] = uri.LocalPath;
ASKD.MainWindow window = new ASKD.MainWindow();
window.Show();
}
}
В MainWindow на методе Loaded пишу следующее:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() => { // запустится когда все дети загрузятся
if (Application.Current.Properties["ArbitraryArgName"] != null)
{
CurrentPath = Application.Current.Properties["ArbitraryArgName"].ToString();
if (File.Exists(CurrentPath))
{
//делаю всякое
}
}
}));
В итоге - приложение не запускается. Вернее доходит до InitializeComponent() в MainWindow и на это благополучно ничего не происходит. Однако, если открыть файл в одной папке с exeшником, то чудо происходит. Как решить такую проблему?
Спасибо.