私はキーボードが表面に接続されたときに識別するために、このコードを使用:
var keyboardWatcher = (function() {
// private
var keyboardState = false;
var watcher = Windows.Devices.Enumeration.DeviceInformation.createWatcher();
watcher.addEventListener("added", function (devUpdate) {
// GUID_DEVINTERFACE_KEYBOARD
if ((devUpdate.id.indexOf('{884b96c3-56ef-11d1-bc8c-00a0c91405dd}') != -1) && (devUpdate.id.indexOf('MSHW0007') == -1) ) {
if (devUpdate.properties['System.Devices.InterfaceEnabled'] == true) {
// keyboard is connected
keyboardState = true;
}
}
});
watcher.addEventListener("updated", function (devUpdate) {
if (devUpdate.id.indexOf('{884b96c3-56ef-11d1-bc8c-00a0c91405dd}') != -1) {
if (devUpdate.properties['System.Devices.InterfaceEnabled']) {
// keyboard is connected
keyboardState = true;
}
else {
// keyboard disconnected
keyboardState = false;
}
}
});
watcher.start();
// public
return {
isAttached: function() {
return keyboardState;
}
}
})();
次にあなたがキーボードの状態を確認する必要があるたびKeyboardWatcher.isAttached()
を呼び出します。
私が理解していることは、添付されているかどうかを知ることができますが、現在添付されているかどうかはわかりません。 'KeyboardCapabilities.KeyboardPresent'を見てください – WiredPrairie
@WiredPrairie物理キーボードを持つコンピュータで' KeyboardCapabilities.keyboardPresent'を使用しようとしましたが、結果は '1'でした。しかし、Surface上の同じコードは、キーボードが接続されていなくても常に「1」を返しました。 – Stefania
残念ながら、私はそれがうまくいくと思う。サーフェスは、ある時点でアタッチされている場合は常にtrueを返します。 – WiredPrairie