You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms UWP中Launcher.LaunchUriAsync调用记事本无响应求助

解决用Launcher打开记事本无响应的问题

问题原因

Launcher.LaunchUriAsync 是用来打开符合URI规范的资源(比如网页、关联格式的文件),直接传入本地exe路径的Uri不符合它的设计场景,因此无法触发执行。另外,即便能启动记事本,原代码也没法把API获取的字符串内容传递给它。

解决方案

步骤1:将API字符串保存为临时文本文件

先把从API拿到的字符串写入一个临时txt文件,让记事本可以直接加载内容:

string apiContent = "从API获取的字符串内容";
string tempTxtPath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.txt");
File.WriteAllText(tempTxtPath, apiContent);

步骤2:用Launcher打开临时文件

通过Launcher打开这个临时txt文件,系统会自动调用默认文本编辑器(通常就是Windows记事本):

var tempFile = await StorageFile.GetFileFromPathAsync(tempTxtPath);
await Launcher.LaunchFileAsync(tempFile);

备选方案:直接启动记事本加载文件(桌面应用适用)

如果是WPF/WinForms这类桌面应用,也可以用Process.Start直接启动记事本并指定要打开的临时文件:

Process.Start(new ProcessStartInfo
{
    FileName = "notepad.exe",
    Arguments = tempTxtPath
});

注意事项

  • 使用完临时文件后可以删除,避免占用磁盘空间:File.Delete(tempTxtPath);(要确保文件已经被关闭)
  • 如果是UWP应用,需确认有文件访问权限,临时路径一般属于允许访问的区域。

内容的提问来源于stack exchange,提问作者Deathgar Vyathemskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:10:37