<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/blog/assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hack Note (Posts about com)</title><link>https://samsonwang.github.io/blog/</link><description></description><atom:link href="https://samsonwang.github.io/blog/tags/com.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2017-2026 &lt;a href="mailto:wangzhilv@gmail.com"&gt;Samson Wang&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc/4.0/"&gt;
&lt;img alt="cc-by-nc 4.0" style="padding-bottom:2px" src="/images/cc-by-nc.png" /&gt;&lt;/a&gt;
</copyright><lastBuildDate>Mon, 12 Oct 2026 07:20:29 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>读取UWP软件的图标</title><link>https://samsonwang.github.io/blog/posts/2026/read-uwp-app-icon/</link><dc:creator>Samson Wang</dc:creator><description>&lt;div&gt;&lt;p&gt;
最近在软件里加了一个功能：读取系统中已安装的UWP应用列表，拿到它们的名称和图标，并且能用代码启动它们。&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;
这件事看起来很简单，做起来却踩了不少坑。UWP应用没有传统的exe文件，显示名称和图标都写在包的清单文件里，而且清单里记录的是“资源名”而不是真实的文件路径——同一个图标在包里可能同时存在 &lt;code&gt;Square44x44Logo.scale-100.png&lt;/code&gt; 、 &lt;code&gt;Square44x44Logo.scale-200.png&lt;/code&gt; 、 &lt;code&gt;Square44x44Logo.scale-400.png&lt;/code&gt; 好几个版本，具体用哪个要由系统在运行时决定。&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;
这篇文章按三条技术栈路线整理我试过的做法：纯 WinRT、ATL + COM、纯 COM。最后一条是我在 LaunchyQt 里实际落地的方案，它完全不需要 WinRT，也不需要 ATL。&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://samsonwang.github.io/blog/posts/2026/read-uwp-app-icon/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>c++</category><category>com</category><category>uwp</category><guid>https://samsonwang.github.io/blog/posts/2026/read-uwp-app-icon/</guid><pubDate>Sat, 10 Oct 2026 09:43:29 GMT</pubDate></item></channel></rss>