UWP 可以 运行 一个使用 StorageFile 的进程吗?
UWP Possible to run a process using StorageFile?
有这个代码:
StorageFolder storageFolder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(file.folderToken);
StorageFile storageFile = await storageFolder.CreateFileAsync("run.exe", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteBytesAsync(storageFile, Properties.Resources.youtube_dl1);
我可以使用文件夹令牌在用户选择的位置创建文件。我现在想 运行 进程中的文件:
Process checkforupdates = new Process();
checkforupdates.StartInfo.FileName = storageFile.Path;
checkforupdates.StartInfo.Arguments = "-x https://www.youtube.com/watch?v=uzr5jm9ueja";
checkforupdates.StartInfo.UseShellExecute = false;
checkforupdates.StartInfo.RedirectStandardOutput = true;
checkforupdates.StartInfo.RedirectStandardOutput = true;
checkforupdates.StartInfo.RedirectStandardError = true;
checkforupdates.StartInfo.CreateNoWindow = true;
checkforupdates.EnableRaisingEvents = true;
checkforupdates.OutputDataReceived += (s, er) =>
{
Debug.WriteLine("dsds" + er.Data);
};
checkforupdates.Start();
checkforupdates.BeginOutputReadLine();
checkforupdates.BeginErrorReadLine();
checkforupdates.WaitForExit();
如果我使用:
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
但只要我使用用户选择的文件夹,我就会收到异常。我确定异常是 UnauthorizedAccessException 但我需要一个 bunlded exe 在文件夹中解压缩,然后 运行 命令才能在用户选择的文件夹中生成文件。在这样做的同时,我需要解析我正在 运行ning.
的命令行实用程序的输出
有什么办法吗?
您可以通过 "Desktop Bridge" 将 Win32 应用程序打包到 UWP 应用程序包中,然后 运行 使用 FullTrustProcessLauncher and communicate with it via app services. Here is a samples.
有这个代码:
StorageFolder storageFolder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(file.folderToken);
StorageFile storageFile = await storageFolder.CreateFileAsync("run.exe", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteBytesAsync(storageFile, Properties.Resources.youtube_dl1);
我可以使用文件夹令牌在用户选择的位置创建文件。我现在想 运行 进程中的文件:
Process checkforupdates = new Process();
checkforupdates.StartInfo.FileName = storageFile.Path;
checkforupdates.StartInfo.Arguments = "-x https://www.youtube.com/watch?v=uzr5jm9ueja";
checkforupdates.StartInfo.UseShellExecute = false;
checkforupdates.StartInfo.RedirectStandardOutput = true;
checkforupdates.StartInfo.RedirectStandardOutput = true;
checkforupdates.StartInfo.RedirectStandardError = true;
checkforupdates.StartInfo.CreateNoWindow = true;
checkforupdates.EnableRaisingEvents = true;
checkforupdates.OutputDataReceived += (s, er) =>
{
Debug.WriteLine("dsds" + er.Data);
};
checkforupdates.Start();
checkforupdates.BeginOutputReadLine();
checkforupdates.BeginErrorReadLine();
checkforupdates.WaitForExit();
如果我使用:
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
但只要我使用用户选择的文件夹,我就会收到异常。我确定异常是 UnauthorizedAccessException 但我需要一个 bunlded exe 在文件夹中解压缩,然后 运行 命令才能在用户选择的文件夹中生成文件。在这样做的同时,我需要解析我正在 运行ning.
的命令行实用程序的输出有什么办法吗?
您可以通过 "Desktop Bridge" 将 Win32 应用程序打包到 UWP 应用程序包中,然后 运行 使用 FullTrustProcessLauncher and communicate with it via app services. Here is a samples.