Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

DeviceWatcher Class

Énumère des périphériques de façon dynamique afin que l'application reçoive des notifications si des périphériques sont ajoutés, supprimés ou modifiés à la fin de l'énumération initiale.

Syntaxe


var deviceWatcher = createWatcher();
var deviceWatcher = createWatcher(deviceClass);
var deviceWatcher = createWatcher(string);
var deviceWatcher = createWatcher(string, iIterable(String));

Attributs

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Version(0x06020000)]

Membres

DeviceWatcherClasse possède ces types de membres :

Événements

DeviceWatcherClasse possède ces événements.

ÉvénementDescription
Added Event that is raised when a device is added to the collection enumerated by the DeviceWatcher.
EnumerationCompleted Event that is raised when the enumeration of devices completes.
Removed Event that is raised when a device is removed from the collection of enumerated devices.
Stopped Event that is raised when the enumeration operation has been stopped.
Updated Event that is raised when a device is updated in the collection of enumerated devices.

 

Méthodes

The DeviceWatcher Classe a les méthodes suivantes. Avec C#, Visual Basic et C++, elle hérite également des méthodes de Object Classe.

MéthodeDescription
Start Starts a search for devices, and subscribes to device enumeration events.
Stop Stop raising the events that add, update and remove enumeration results.

 

Propriétés

Le DeviceWatcherClasse a les propriétés suivantes.

PropriétéType d'accèsDescription

Status

En lecture seuleThe status of the DeviceWatcher.

 

Remarques

Une application appelle Start pour commencer la recherche des périphériques. Pendant cette énumération initiale, DeviceWatcher déclenche un événement Added pour chaque périphérique trouvé, jusqu'à ce que tous les périphériques soient trouvés. Le DeviceWatcher déclenche un événement EnumerationCompleted lorsque l'énumération initiale est terminée, et continue à déclencher des événements si un périphérique est ajouté, mis à jour ou supprimé.

Le diagramme suivant montre la transition de DeviceWatcher entre les états représentés par l'énumération DeviceWatcherStatus.

diagramme d'état des états DeviceWatcher

La méthode Start peut être appelée uniquement si DeviceWatcher est à l'état Created, Stopped ou Aborted. La propriété Status indique l'état de DeviceWatcher. Lors du redémarrage de l'observateur, attendez l'événement Stopped avant d'appeler Start.

Stop fait passer le DeviceWatcher à l'état Stopping et se termine immédiatement. L'observateur passe à l'état Stopped une fois que tous les événements déjà en cours de déclenchement sont terminés.

Les applications peuvent attendre l'événement Stopped s'ils doivent savoir quand DeviceWatcher a été arrêté. Les appelants doivent attendre l'événement Stopped avant de pouvoir appeler Start pour redémarrer l'observateur. Les appelants peuvent annuler un abonnement aux événements s'ils ne veulent pas recevoir d'événements supplémentaires après Stop et ne souhaitent pas attendre l'événement Stopped.

Remarque  Une application doit s'abonner à tous les événements added, removed et updated pour être informée lorsque des ajouts, des suppressions ou des mises à jour de périphériques ont lieu. Si une application gère uniquement l'événement added, elle ne reçoit pas de mise à jour si un périphérique est ajouté au système après la fin de l'énumération initiale des périphériques.

Exemples

Cet exemple énumère de façon incrémentielle les périphériques, en les ajoutant à une liste chaque fois qu'un périphérique est trouvé et en gérant aussi les suppressions et les mises à jour. La fonction onAdded qui gère l'événement added accepte un objet DeviceInformation. Une fois que l'énumération est terminée, l'application imprime une liste de périphériques. L'application imprime également un message si les périphériques sont ajoutés, mis à jour ou supprimés à la fin de l'énumération initiale.



<!DOCTYPE html>
<html>
<head>
    <title>Device Enumeration Sample</title>
    <script>
   var watcher;
    var deviceArray = new Array(); // Saves the enumeration results.

    function WatchDevices() {
        try {
            output.innerHTML = ""; // Clears output field.

            watcher = 
                Windows.Devices.Enumeration.DeviceInformation.createWatcher();
            // Add event handlers
            watcher.addEventListener("added", onAdded);
            watcher.addEventListener("removed", onRemoved);
            watcher.addEventListener("updated", onUpdated);
            watcher.addEventListener("enumerationcompleted", 
                onEnumerationCompleted);
            watcher.addEventListener("stopped", onStopped);
            // Start enumerating and listening for events
            watcher.start();
        } catch (e) {
            document.getElementById("statusMessage").innerHTML = 
                "Failed to create watcher, error: " + e.message;
        }
    }

    function stopWatcher() {
        try {
            watcher.stop();
        }
        catch (e) {
            document.getElementById("statusMessage").innerHTML = 
                "Failed to stop watcher: " + e.message;
        }
    }

    function onAdded(devinfo) {
        document.getElementById("output").innerHTML += "<p>Device added: " + 
            devinfo.name + "</p>";
        deviceArray.push(devinfo);
    }

    function onUpdated(devUpdate) {
        document.getElementById("output").innerHTML += "<p>Device updated.</p>";
        for (var i = 0; i < deviceArray.length; i++) {
            if (deviceArray[i].id == devUpdate.id) {
                deviceArray[i].update(devUpdate);
            }
        }
    }

    function onRemoved(devupdate) {
        document.getElementById("output").innerHTML += "<p>Device removed.</p>";
        for (var i = 0; i < deviceArray.length; i++) {
            if (deviceArray[i].id == devupdate.id) {
                deviceArray[i].slice(devupdate);
            }
        }
    }

    function onEnumerationCompleted(obj) {
        document.getElementById("output").innerHTML += 
            "<p>Enumeration Completed.</p>";
        printDeviceArray(document.getElementById("output"));
    }

    function onStopped(obj) {
        document.getElementById("output").innerHTML += "<p>Stopped.</p>";
    }


    // Prints the friendly name of the device interface, 
    // its ID (device interface path), and whether it is enabled.
    function printDevice(deviceInterface, outputDestination) {
        outputDestination.innerHTML += "<p>Name: " + 
            deviceInterface.name + "<p/>"; 
        outputDestination.innerHTML += "<p>Interface ID: " + 
            deviceInterface.id + "<p/>";    
        outputDestination.innerHTML += "<p>Enabled: " + 
            deviceInterface.isEnabled + "<p/>";
        outputDestination.innerHTML += "<br />";
    }

    function printDeviceArray(outputDestination) {
        for (var i = 0; i < deviceArray.length; i++) {
            printDevice(deviceArray[i], outputDestination);
        }
    }

    </script>
</head>
<body role="application">
    <h1>Device Enumeration Sample</h1>
    <h2 >Input</h2>
    <div >            
            <div >
            <p>This example incrementally enumerates devices, adding them to a list each time a device is found, and also watching for updates.
               Once enumeration is complete, the list of devices is printed.</p> 
                <input type="button" value="Watch(All Devices)" onclick="WatchDevices()"/>
                <br /><br />

                <input type="button" value="Stop" onclick="stopWatcher()"/>
                <br /><br />
            </div>
    </div>

    <h2 > Output</h2>
            <div id="statusMessage"></div>
            <!--  Output -->
            <div  id="output"></div>
</body>
</html>



Conditions requises

Client minimal pris en charge

Windows 8 [Applications Windows Store, applications de bureau]

Serveur minimal pris en charge

Windows Server 2012 [Applications Windows Store, applications de bureau]

Espace de noms

Windows.Devices.Enumeration
Windows::Devices::Enumeration [C++]

Métadonnées

Windows.winmd

 

 

Afficher:
© 2014 Microsoft