如果我在我的设备上的智能卡读卡器中插入卡。我想在我的WPF项目中触发一个事件。有什么想法来实现这个目标吗?
答案 0 :(得分:0)
这个问题是前一段时间,但我可以确认是可能的。您可以引用UWP程序集。 Calling Windows 10 APIs From a Desktop Application详细说明了如何添加引用。
右键单击参考。从上下文中选择“添加引用...” 菜单。在参考管理器的左侧,选择浏览并找到 以下文件:C:Program Files(x86)Windows Kits10UnionMetadatawinmd。 将其添加到您的项目中作为参考。注意:您需要进行更改 过滤到“所有文件”。
右键单击参考。从上下文菜单中选择“添加引用...”。在参考管理器的左侧,转到浏览并 找到目录“ C:Program Files(x86)Reference” 组装MicrosoftFramework.NETCorev4.5”。加 将System.Runtime.WindowsRuntime.dll添加到您的项目。
从那里开始,我跟随这个示例Getting all Cards,简单地剪切和粘贴主要部分。有了阅读器后,您就可以添加Card Added Event
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);
}
}