[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]
当卷设备(如内存卡或指状驱动器)连接到电脑时,你可以将这些设备标识为“自动播放”设备。当你希望关联特定的应用以便为卷设备的用户提供“自动播放”****功能时,这尤其有用。
下面显示了如何将卷设备标识为“自动播放”设备。
若要将卷设备标识为“自动播放”****设备,请在设备的根驱动器中添加一个 autorun.inf 文件。在 autorun.inf 文件中,向 AutoRun 部分中添加一个 CustomEvent 键。当卷设备连接到电脑时,“自动播放”功能将查找 autorun.inf 文件并将你的卷视为一个设备。“自动播放”****功能将通过使用你为 CustomEvent 键提供的名称创建一个“自动播放”事件。然后,你可以创建一个应用并将其注册为该“自动播放”****事件的处理程序。当设备连接到电脑时,“自动播放”功能会将该应用显示为卷设备的处理程序。 有关 autorun.inf 文件的详细信息,请参阅 Autorun.inf 条目。
设备制造商:: “自动播放”****功能不会自动下载你为设备创建的作为处理程序的应用。但和往常一样,用户可以从 Windows 应用商店获取应用。 若要创建一个更简化的体验,请使用设备元数据将你的应用与你的设备关联。如果将你的应用关联为设备的体验 ID 的自动安装的应用,则在将设备连接到电脑时,操作系统将发现这种关联。如果该电脑上没有安装你的应用,操作系统将自动下载和安装你的应用。“自动播放”功能会将你的应用作为第一个选项供用户选为设备的处理程序。有关详细信息,请参阅 Windows 应用商店设备应用的自动播放。
目标: 创建一个用来为卷设备处理“自动播放”事件的应用。
先决条件
你必须让卷设备(如指状储存器或存储卡)完成本快速入门中的说明。
Microsoft Visual Studio
说明
1. 创建 autorun.inf 文件
在卷设备的根驱动器中,添加一个名为 autorun.inf 的文件。打开 autorun.inf 文件并添加以下文本。
[AutoRun] CustomEvent=AutoPlayCustomEventQuickstart
2. 创建新项目并添加自动播放声明
打开 Visual Studio,然后从“文件”****菜单中选择“新建项目”。在“Javascript”****部分中,选择“Windows 应用商店”。将应用命名为 AutoPlayCustomEvent 并单击“确定”。
打开 Package.appxmanifest 文件并选择“功能”****选项卡。选择“可移动存储”功能。这使应用能够访问可移动存储设备上的文件和文件夹。
在清单文件中,选择“声明”选项卡。在“可用声明”下拉列表中,选择“自动播放内容”,然后单击“添加”。选择已添加到“支持的声明”列表中的新的“自动播放内容”****项。
注意 或者,你还可以选择为自定义的自动播放事件添加“自动播放设备”声明。
在“自动播放内容”****事件声明的“启动操作”部分中,为第一个启动操作输入以下值。
设置 值 谓词 显示 操作显示名称 显示文件夹 内容事件 AutoPlayCustomEventQuickstart “内容事件”****值是在 autorun.inf 文件中为 CustomEvent 键提供的文本。“操作显示名称”设置标识自动播放为你的应用显示的字符串。“谓词”****设置标识针对所选选项传递给你的应用的值。你可以为自动播放事件指定多个启动操作并且可以使用“谓词”设置确定用户未你的应用选择的选项。你可以通过检查传递给应用的启动事件参数的 verb 属性来标识用户选择的选项。你可以为“谓词”设置使用任何值(但保留的 open 除外)。
在“可用声明”下拉列表中,选择“文件类型关联”****,然后单击“添加”。在新“文件类型关联”声明的“属性”中,将“显示名称”字段设置为 Show .ms Files,并将“名称”字段设置为 ms_association。在“支持的文件类型”部分中,单击“新增”。将“文件类型”字段设置为 .ms。对于内容事件,“自动播放”功能会筛选掉任何未与应用显式关联的文件类型。
保存并关闭清单文件。
3. 添加 HTML UI
打开 Default.html 文件并将以下 HTML 置于 <body> 部分中。
<h2>Files</h2> <div id="files" style="width:400px;height:600px;font-size:large;" />
4. 添加激活代码
此步骤中的代码调用一个函数以显示卷设备根驱动器中的文件夹。对于自动播放内容事件,自动播放功能在传递给应用的启动参数中传递存储设备的根文件夹。可以从 detail.files 属性的第一个元素检索该文件夹。你可以通知,当 activation 事件参数的 detail.kind 属性返回 Windows.ApplicationModel.Activation.ActivationKind.file 值时,该应用作为自动播放内容事件的处理程序启动。
打开 js 文件夹。打开 Default.js 文件并将默认的 onactivated 函数替换为以下代码。
var filesDiv; app.onactivated = function (args) { if (args.detail.kind === activation.ActivationKind.file) { filesDiv = document.getElementById("files"); displayFiles(args.detail.files[0]); } args.setPromise(WinJS.UI.processAll()); };
5. 将代码添加到显示文件夹名称中
在 Default.js 文件中,将以下代码添加到 onactivated 函数的后面。
function displayFiles(folder) { var options = new Windows.Storage.Search.QueryOptions(); options.fileTypeFilter.append(".ms"); var query = folder.createFileQueryWithOptions(options); query.getFilesAsync().done( function (files) { files.forEach( function (f) { filesDiv.innerHTML += " " + f.name + "<br/>"; }); }); }
6. 生成并运行应用
- 按 F5 生成并部署应用(在调试模式下)。
- 若要运行应用,请将内存卡或其他存储设备插入电脑。然后从“自动播放”处理程序选项的列表中选择你的应用。
摘要和后续步骤
在本教程中,你通过在 autorun.inf 文件中定义一个自定义“自动播放”事件名称,将卷设备标识为自动播放设备。然后,你创建了一个应用并将其注册为该自定义事件的处理程序。