使用平臺/ Invoke的我只是使用的Win32 API,以及的CreateFile DeviceIoControl的從VB.net UWP在Windows 10桌面使用我們自己的WDM驅動程序來訪問我們的定製賽普拉斯FX2基於USB設備成功。
方法1記錄在https://developer.microsoft.com/en-us/windows/iot/Samples/CustomDeviceAccessor 也適用於桌面。 這裏是命令提示符的幀抓取,使註冊表設置授予對我們硬件的「AppContainer進程」的訪問權限!
C:\窗口\ system32>的schtasks /刪除/ TN DeviceAC/F ERROR:系統無法找到指定的文件。
C:\ WINDOWS \ system32> schtasks/create/RU SYSTEM/SC ONCE/TN DeviceAC/TR「reg import c:\ data \ deviceac.reg」/ ST 00:00 警告:任務可能無法運行,因爲/ ST比當前時間早。 成功:計劃的任務「DeviceAC」已成功創建。
C:\ WINDOWS \ system32> schtasks/run/tn DeviceAC/I/Hresult SUCCESS:試圖運行計劃任務「DeviceAC」。
C:\ WINDOWS \ SYSTEM32>的schtasks /查詢/ TN DeviceAC
文件夾:\ TASKNAME下次運行時間狀態
================ ======================== ====================== ==== ===========
DeviceAC N/A就緒
C:\窗口\ system32> REG查詢「HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \枚舉\ USB \ VID_0547 & PID_BC02 \ 6 & 59cb9c4 4"/V安全
HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \枚舉\ USB \ VID_0547 & PID_BC02 \ 6 & 59cb9c4 安全REG_BINARY 010004900000000000000000000000001400000002006000040000000000140000000010010100000000000512000000000018000000001001020000000000052000000020020000000014000000001001010000000000050B0000000000180000000010010200000000000F0200000001000000
C:\窗口\ system32> schtasks/delete/tn DeviceAC/f SUCCESS:計劃的任務「DeviceAC」成功刪除。
CreateFile和DeviceIoControl像魅力一樣工作。我們有乾淨快速和同步的Win32代碼。 無垃圾一樣
task <UINT32> CUsbDev::getDeviceInfo()
{
return create_task(DeviceInformation::FindAllAsync(UsbDevice::GetDeviceSelector(0x0547, 0xAB02)))
.then([this](DeviceInformationCollection^ deviceInformationCollection) -> UINT32
{
if (deviceInformationCollection->Size > 0)
{
DeviceInformation^ di = deviceInformationCollection->GetAt(0);
String^ s = di->Id;
create_task(UsbDevice::FromIdAsync(s))
.then([this, di](UsbDevice^ usbDevice)
{
String^ s;
if (usbDevice != nullptr)
{
UsbDeviceDescriptor^ devDesc = usbDevice->DeviceDescriptor;
s = devDesc->VendorId.ToString();
s += devDesc->ProductId.ToString();
return 0;
}
else
{
return 1;
}
});
}
else
{
return 10;
}
});
}
雖然第一種方法是對於開發商這下方法應該是生產 相同的註冊表設置的有用通過一個.inf是可能的聲明在此鏈接中提到 「在DDINSTALL.HW部分指定對特定設備的訪問控制」
http://www.osronline.com/article.cfm?article=508
滅跡:像C++/CX擴展 如果我們的好朋友比爾是在事務的掌舵人,他根本就不會允許垃圾已經走在了首位。什麼樣的計算機編程是爲每個程序創建一個線程(或任務)。孩子們正在用C++/CX代碼看着帽子和裝飾。一個乾淨的C++被賦予了這一代,他們給下一代是不可原諒的。比爾應該可以看到他的公司今天生成的代碼。 現在他們正在使用C++/WinRt來清理垃圾。 我相信UWP的核心是普通的Win32 C(C++)代碼。現在是時候讓一個完整的圈子讓VB6直接,乾淨而高效地訪問UWP代碼。
Ravi
*「企業應用程序」*不是我熟悉的術語。您是指通過企業商店發佈的UWP/Windows Store應用程序嗎? – IInspectable
私人,側面加載的應用程序可能更合適? – Ravi