[170] Bluetooth Radio Control on Windows 10

先前提到控制 Bluetooth(藍牙)Radio 開關使用 UWP API。本篇把撞牆過程紀錄下來。 Win32 API is a Dead End 一開始先往 Win32 API 找,結果偏尋不著可以直接開關 Bluetooth Radio 的方法。使用 Win32 API 只可以查詢但無法改變 Bluetooth Radio 狀態,這點出乎我意料之外。找到最接近的可行(但其實有大缺陷)的方法是使用 Setup API Enable/Disable Bluetooth 裝置。 這個方法在有 Bluetooth 裝置配對後即失效,而且會產生許多副作用(Side Effect),例如配對使用中的喇叭出聲怪音。失敗。 噁心的 UI Automation…

[148] 在傳統的 Desktop app 裡呼叫 UWP API

緣起 前陣子有個專案需要在 Windows 10 的環境用程式去控制 Bluetooth(藍牙)Radio 開關。專案初期評估此功能屬低技術門檻,應有現成的 Windows API 可以用。不過,事實證明我太天真了。最後是利用 UWP API 來解決,細節我會另撰文說明,本章主要說如何在 Desktop app 裡呼叫 UWP API。 Desktop app 能夠使用 UWP API 嗎? 答案是肯定的。一直以來,微軟對於軟體開發介面的設計態度是儘可能保持往前相容,這麼做對開發者友善,這是優點。缺點是包袱多,走不快。這方面微軟的「取捨」做得不錯。 不過,不是所有的 UWP API 都能被 Desktop app…

Fix Building Windows 10 WDK Sample Error

Microsoft 很聰明地將 Windows 10 驅動程式範例程式放到了 GitHub。這陣子手上剛好有需求,於是「非常不浪費時間地」的安裝了以下軟體(按順序): Visual Studio 2015 Windows 10 SDK Windows 10 WDK (10075) 興高采烈地編譯起 vhidmini2,結果遇到了下列錯誤: > ..\vhidmini.c : fatal error C1083: Cannot open include file: '\warning.h': No such file or directory > util.c : fatal error C1083: Cannot open…