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

如何将UWP应用注册为截图及摄像头快照的共享接收方

如何将自定义UWP应用注册为Windows截图/摄像头捕获的共享接收方

完全可以实现,只需通过应用清单配置+少量代码逻辑就能完成,以下是具体步骤:

一、配置应用清单(Package.appxmanifest)

这是让应用出现在共享列表的核心步骤:

  1. 打开Package.appxmanifest的代码视图,在<Application>节点内添加共享目标扩展声明:
<Extensions>
  <uap:Extension Category="windows.shareTarget">
    <uap:ShareTarget>
      <uap:SupportedFileTypes>
        <!-- 按需添加支持的图片格式 -->
        <uap:FileType>.png</uap:FileType>
        <uap:FileType>.jpg</uap:FileType>
        <uap:FileType>.jpeg</uap:FileType>
        <uap:FileType>.bmp</uap:FileType>
      </uap:SupportedFileTypes>
      <!-- 适配截图/摄像头捕获的两种共享数据格式 -->
      <uap:DataFormat>Bitmap</uap:DataFormat>
      <uap:DataFormat>StorageItems</uap:DataFormat>
    </uap:ShareTarget>
  </uap:Extension>
</Extensions>
  1. 若需要读取共享的图片文件,在<Capabilities>节点添加图片库访问权限:
<Capability Name="picturesLibrary" />

二、实现共享内容接收逻辑

配置完成后,需要在应用中处理传入的共享内容:
在App.xaml.cs中重写OnShareTargetActivated方法,处理不同类型的共享数据:

protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
    var shareOperation = args.ShareOperation;

    // 处理Bitmap类型的共享内容(比如WIN+SHIFT+S的截图)
    if (shareOperation.Data.Contains(StandardDataFormats.Bitmap))
    {
        shareOperation.Data.GetBitmapAsync().ContinueWith(async task =>
        {
            using var bitmap = task.Result;
            using var stream = await bitmap.OpenReadAsync();
            // 在这里添加你的图片处理逻辑:显示、保存、编辑等
            shareOperation.ReportCompleted();
        });
    }
    // 处理文件类型的共享内容(比如摄像头拍摄的照片文件)
    else if (shareOperation.Data.Contains(StandardDataFormats.StorageItems))
    {
        shareOperation.Data.GetStorageItemsAsync().ContinueWith(async task =>
        {
            var items = task.Result;
            foreach (var item in items)
            {
                if (item is StorageFile file && file.FileType is ".png" or ".jpg" or ".jpeg" or ".bmp")
                {
                    using var stream = await file.OpenReadAsync();
                    // 添加你的图片处理逻辑
                }
            }
            shareOperation.ReportCompleted();
        });
    }

    // 导航到专门处理共享内容的页面(可选)
    var rootFrame = Window.Current.Content as Frame ?? new Frame();
    rootFrame.Navigate(typeof(ShareReceivePage), shareOperation);
    Window.Current.Content = rootFrame;
    Window.Current.Activate();
}

三、验证效果

部署应用后,测试两种场景:

  • 按下SHIFT + WIN + S截取截图,点击预览弹窗的「共享」按钮,你的UWP应用会出现在共享列表中
  • 使用摄像头应用拍摄照片后,选择「共享」选项,同样能看到你的应用

内容的提问来源于stack exchange,提问作者Cristiano Ghersi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:30:48