首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果插入SmartCard,WPF将捕获事件

如果插入SmartCard,WPF将捕获事件
EN

Stack Overflow用户
提问于 2017-02-13 14:54:13
回答 1查看 1.3K关注 0票数 1

如果我在设备上的SmartCard阅读器中插入一张卡片。我想在我的WPF项目中触发一个事件。有什么办法可以做到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-15 18:30:47

这个问题是不久前提出的,但我可以证实这是可能的。您可以引用UWP程序集。从桌面应用程序调用Windows 10 API详细介绍了如何添加引用。

右击参考资料。选择“添加引用…”从上下文菜单。在参考管理器的左侧,选择Browse并找到以下文件: C:Program (X86) Kits10UnionMetadatawinmd。将其作为参考添加到您的项目中。注意:您需要将过滤器更改为“所有文件”。 右击参考资料。选择“添加引用…”从上下文菜单。在参考管理器的左边,转到Browse并找到目录“C:Program(X86)ReferenceAssembliesMicrosoftFramework.NETCorev4.5”。将System.Runtime.WindowsRuntime.dll添加到项目中。

在这里,我遵循这个示例,得到所有的卡片简单地剪切和粘贴主要部分。一旦有了读取器,就可以添加卡添加事件

代码语言:javascript
复制
string selector = SmartCardReader.GetDeviceSelector();
DeviceInformationCollection devices = await DeviceInformation.FindAllAsync(selector);

foreach (DeviceInformation device in devices)
{
    SmartCardReader reader = await SmartCardReader.FromIdAsync(device.Id);

    // For each reader, we want to find all the cards associated
    // with it.  Then we will create a SmartCardListItem for
    // each (reader, card) pair.
    IReadOnlyList<SmartCard> cards = await reader.FindAllCardsAsync();

    foreach (SmartCard card in cards)
    {
        SmartCardProvisioning provisioning = await SmartCardProvisioning.FromSmartCardAsync(card);

        SmartCardListItem item = new SmartCardListItem()
        {
            ReaderName = card.Reader.Name,
            CardName = await provisioning.GetNameAsync()
        };

        cardItems.Add(item);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42206972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档