Démarrage rapide : énumération des conteneurs de périphérique (HTML)
[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]
Types d’objets Plug and Play (PnP) dans les informations de périphériques du magasin d’énumération PnpObjectType associés à une interface de périphérique particulière, périphérique dont l’interface fait partie, classe d’interfaces de périphérique ou conteneur de périphérique qui représente l’ensemble du produit matériel. Le conteneur de périphérique décrit les aspects visibles d’un périphérique, tels qu’un nom de fabricant ou de modèle. Windows.Devices.Enumeration.DeviceInformation représente le même type que PnpObjectType.DeviceInterface.
L’espace de noms Windows.Devices.Enumeration.PnP vous permet d’énumérer les périphériques et les conteneurs de périphérique, ainsi que les périphériques et les interfaces de périphérique. Cette rubrique vous montre comment utiliser l’espace de noms Windows.Devices.Enumeration.PnP pour énumérer les conteneurs de périphérique.
Objectif: Pour énumérer les propriétés des conteneurs de périphérique.
Prérequis
Vous devez être familiarisé avec JavaScript et HTML.
Durée de réalisation: 20 minutes.
Instructions
1. Ouvrir Microsoft Visual Studio
Ouvrez une instance de Visual Studio.
2. Créer un projet
Dans la boîte de dialogue Nouveau projet, à partir de JavaScript > types de projets applications du Windows Store , cliquez sur Application vide.
3. Insérer l’application HTML
Ouvrez votre fichier Default.html, puis copiez ce code dans le fichier à la place du contenu existant.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="/js/default.js"></script>
</head>
<body data-design-activate="defaultPage.activated">
<h1>Device Enumeration Sample</h1>
<h2 >Input</h2>
<div>
<div id="Input">
<p>This scenario demonstrates enumerating device containers.</p>
<p>Pressing the enumerate button will start a
search for device containers.
The containers will be listed below.</p>
<input onclick="onEnumerateDeviceContainers()" type="button" value="Enumerate" />
<br /><br />
</div>
</div>
<h2> Output</h2>
<div id="statusMessage"></div>
<!-- Container Enumeration results are displayed in this element -->
<div id="output"></div>
</body>
</html>
4. Insérer le code JavaScript
Dans Default.js, insérez ce code.
function onEnumerateDeviceContainers() {
try {
document.getElementById("output").innerHTML = "";
var propertiesToRetrieve = new Array();
propertiesToRetrieve.push("System.ItemNameDisplay");
propertiesToRetrieve.push("System.Devices.ModelName");
propertiesToRetrieve.push("System.Devices.Manufacturer");
var DevEnum = Windows.Devices.Enumeration;
var Pnp = DevEnum.Pnp;
var pnpObjType = Pnp.PnpObjectType;
var deviceContainerType = pnpObjType.deviceContainer;
Pnp.PnpObject.findAllAsync(
deviceContainerType,
propertiesToRetrieve).then(
function (devinfoCollection) {
var numDevices = devinfoCollection.length;
document.getElementById("statusMessage").innerHTML =
numDevices + " device containers(s) found";
if (numDevices) {
for (var i = 0; i < numDevices; i++) {
printDeviceContainer(devinfoCollection[i],
document.getElementById("output"));
}
} else {
document.getElementById("statusMessage").innerHTML =
("No devices found");
}
},
function (e) {
document.getElementById("statusMessage").innerHTML =
("Failed to find devices, error: " + e.message);
});
} catch (e) {
document.getElementById("statusMessage").innerHTML =
("Failed to enumerate devices, error: " + e.message);
}
}
function printProperties(log, prop) {
log.innerHTML += "property store count is: " + prop.size;
var pt = prop.first();
while (pt.hasCurrent) {
log.innerHTML += "<br />" + pt.current.key + " := " + pt.current.value;
pt.moveNext();
}
log.innerHTML += "<br />";
}
function printDeviceContainer(deviceContainer, log) {
var prop = deviceContainer.properties;
if (prop) {
log.innerHTML += "<h3>" + prop.lookup("System.ItemNameDisplay") + "<h3/>";
log.innerHTML += "<p>Container ID: " + deviceContainer.id + "<p/>";
printProperties(log, prop);
}
log.innerHTML += "<br /><br />";
}
Récapitulatif
Vous venez d’énumérer les propriétés de conteneur de périphérique. Notez que le paramètre requestedProperties pour Windows.Devices.Enumeration.Pnp.findAllAsync est nécessaire pour obtenir les résultats d’une énumération de conteneur permettant de contenir les propriétés.