写点什么

通用 Windows 平台应用程序开始恢复 Win32 功能

  • 2018-04-01
  • 本文字数:1097 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

微软借 Windows 10 推出通用 Windows 平台(Universal Windows Platform,简称 UWP),声称 UWP 将给用户带来很多好处:UWP 应用程序能够运行在任何基于 Windows 10 的平台(桌面、Xbox、HoloLens 或物联网等等)上、现代化的安装器 / 卸载器等。只不过,UWP 应用程序起初缺少 Win32 桌面应用拥有的很多传统功能。因为微软认为,为了给用户更多的安全性,有必要限制开发人员能做的事情。

这种方法带来一个问题,就是用户和开发人员都熟悉传统 Win32 API 提供的功能。自从不限制在 Windows 10 上运行 Win32 应用程序之后,对于很多开发人员来说,更容易继续使用旧平台。这导致微软陷入了困境,因为它希望继续吸引用户使用 Windows 10,同时鼓励开发人员编写 UWP 应用程序。即将推出的Windows 10 1803 版本准备放宽对UWP 应用程序的一些限制。

放宽对文件系统的**** 访问

UWP 应用程序现在可以用两种不同的权限选项来处理本地文件系统。首先,通过声明 AppExecutionAlias 扩展,一个 UWP 应用程序拥有对启动目录(从命令提示符启动时)和所有子目录的访问权限。

或者,一个 UWP 应用程序可以声明 broadFileSystemAccess 功能,然后可以访问用户有权访问的所有文件。请注意,要是在提交给微软应用商店的应用程序中用到这个功能,需要提供附加信息,说明为什么需要这么做以及是如何实现的。

多实例支持

这是 UWP 应用程序的自由选择功能,它允许一个应用程序的每个运行实例在单独的进程中执行。这提供了某种程度上的安全性,某个实例的崩溃不会影响到任何其他实例。

控制台应用程序

现在,UWP 应用程序将能够像传统 Win32 控制台应用程序那样运行。但是,因为它遵循 UWP 准则,所以它可以像任何 UWP 应用程序一样,在 Windows 应用商店发布,并通过一个应用程序图标来启动运行。由于它是一个控制台应用程序,主要是从命令提示符或 PowShell 窗口启动。

有一点要特别注意,当前的 UWP 控制台应用程序必须使用 C++/WinRT 或 /CX。不支持基于.NET 的语言。UWP 控制台应用程序可以从执行它的目录及其全部子目录来访问本地设备的文件系统。它拥有广泛的文件系统访问权限,也可以利用多实例支持。UWP 控制台应用程序受到一些限制,显然地,它们不能在后台运行、可能不能创建窗口、必须应用于桌面或物联网项目。

阅读英文原文 Universal Windows Platform Apps Start to Retrace Win32 Functionality


感谢无明对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-04-01 19:002496
用户头像

发布了 199 篇内容, 共 94.6 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

活动预告|诚邀您参加HICOOL2023全球创业者峰会澜舟科技产品发布会

澜舟孟子开源社区

软件测试/测试开发丨Python 常用第三方库 pymysql

测试人

Python MySQL 程序员 软件测试 测试开发

4 招搞定 Java List 排序

飞算JavaAI开发助手

2023-08-16:用go语言如何解决进击的骑士算法问题呢?

福大大架构师每日一题

福大大架构师每日一题

Programming abstractions in C阅读笔记: p114-p117

codists

使用 Docker 部署 etcd、启用身份验证

向东是大海

etcd

关于 LLM 和图数据库、知识图谱的那些事

NebulaGraph

图数据库 知识图谱 LLM

重新定义物化视图,你必须拥有的极速湖仓神器!

StarRocks

数据库 数据仓库 StarRocks 湖仓一体 物化视图

哪些无用敏捷指标正在破坏敏捷转型?

敏捷开发

敏捷开发 敏捷转型 敏捷指标

智能化推送系统——APP出海营销的好帮手

MobTech袤博科技

前端开发 APP开发 前端开发工具 前端‘’

如何快速优化 CnosDB 数据库性能与延迟:使用 Jaeger 分布式追踪系统

CnosDB

时序数据库 开源社区 CnosDB 工程师有话说

SQLite数据库实现数据增删改查

芯动大师

leetcode22_Valid_Parentheses_有效的括号

okokabcd

LeetCode

商密大会传捷报|海泰方圆喜获首届“熵密杯”密码应用安全竞赛优胜奖

电子信息发烧客

在 Dify 轻松调用顶尖开源与国产模型,解锁不同模型的潜力

Dify

ChatGPT 文心一言 ChatGLM 讯飞星火 llama2

阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?

阿里巴巴云原生

阿里云 云原生 可观测

CommunityOverCode Asia 议程上线|Apache Flink 项目实践

Apache Flink

大数据 flink 实时计算

使用 appuploader 工具流程(Windows 版本) 作者:雪奈椰子

推荐系统系列之推荐系统概览(上)

亚马逊云科技 (Amazon Web Services)

Amazon

如何通过观测云的RUM找到前端加载的瓶颈--可观测性入门篇

Yestodorrow

可观测性

一文了解Vue的优点,低代码平台的前端框架采用Vue的好处有哪些?

互联网工科生

Vue 低代码 应用开发 JNPF

Java如何检查文件是目录还是文件?

飞算JavaAI开发助手

LeetCode题解:2631. 分组

Lee Chen

JavaScript LeetCode

摆脱 OpenAI 依赖,8 分钟教你用开源生态构建全栈 AI 应用

Zilliz

Milvus AIGC LLM langchain cvpstack

来聊聊托管服务提供商(MSP)安全

树上有只程序猿

网络安全 msp

通用Windows平台应用程序开始恢复Win32功能_.NET_Jeff Martin_InfoQ精选文章