Я разрабатываю приложение UWP впервые. Я всегда использовал Windows Forms и WPF, но потенциальный дизайн этих приложений великолепен, но проблема в том, что они являются своего рода песочницей, особенно для моего текущего проекта. По сути, я делаю игровой лаунчер, где вы добавляете свои игры, а программа создает список игр. (Думайте об этом как о Steam для всего с современным дизайном Windows 10 Material).
Теперь мне удалось сделать почти все, кроме двух вещей. Во-первых, и это самое главное, это путь к игре. Я создаю средство выбора файлов, я могу выбрать файлы .exe, я могу получить их имена, но свойство file.Path
не работает, оно возвращает нулевой путь. Я думал, что это может быть из-за изолированного дизайна UWP, но я углубился в это, что я действительно не хочу отказываться от него.
Вторая проблема - запуск этих файлов. Мне удалось сделать это в играх Steam, используя специальный URI Steam. («steam: // rungameid / xxxxxx», где xxxxxx - это идентификатор игры) Но это не сработает, если я просто добавлю путь в качестве URI.
Что ты думаешь? Есть ли какие-то решения? Позвольте мне показать вам некоторые из связанных кодов:
public async void SelectEXE()
{
var picker = new Windows.Storage.Pickers.FileOpenPicker
{
ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail,
SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary
};
picker.FileTypeFilter.Add(".exe");
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
stuffWrite[0] = file.Name;
stuffWrite[1] = file.Path;
count++;
WriteCount();
WriteItem(count, string.Join(",", stuffWrite));
UpdateList();
}
}
async void LaunchGame(string uriToLaunch)
{
Uri uri = new Uri(uriToLaunch);
games_list.Items.Add(uriToLaunch);
uri = new Uri("steam://rungameid/730"); //replace with actual path
await Windows.System.Launcher.LaunchUriAsync(uri);
}