Μπορείς να αναφέρεις μια "παρόμοια διαδικασία" ελέγχου hardware από γλώσσα .net και πώς περίπου καταλαβαίνεις την απλοποίηση αυτή; Είμαι περίεργος γιατί, για παράδειγμα, το WMI δίνει τη δυνατότητα να δείς τι hardware έχεις αλλά για να το τροποποιήσεις δεν είναι και τόσο εύκολο. Όπως επίσης δεν είναι και εύκολο να δεις το hardware, γιατί θέλει να γραψεις queries, loops κλπ. Και αφού ασχολείσαι με C++, γιατί δεν την αφήνεις να κάνει αυτή τη δουλειά με το USB και να σου δίνει τα δεδομένα στην VB.NET για να τα παρουσιάζεις γραφικά.
Και για την αρχική σου ερώτηση: (δεν το δοκίμασα προσωπικά και δεν λαμβάνω ευθύνη αν κάτι πάει στραβά, ή αλλιώς do not try this at home) χωρίς να πάμε στον προγραμματισμό, για κάθε συσκευή στο Device Manager των Windows, μπορείς να δεις τα Properties, και από εκεί επιλέγεις το tab Details. Στο combo box Property επέλεξε το "Power data" και δες την τιμή του. Το "Curent power state" λέει μια τιμή, που κατοχυρώθηκε από το ACPI . Αυτό που ζητάς είναι να πας στην κατάσταση Power Off. Ή ακόμα χειρότερα, να μην περνάει καν ρεύμα, που μπορεί να είναι διαφορετικό, αλλά όχι εντελώς. Μια λύση είναι να το κάνεις μέσω BIOS, που ίσως να είναι και ο λόγος που έγινε την πρώτη φορά "κατά λάθος". Άλλη λύση είναι να κόψεις το καλώδιο USB και να βάλεις ένα διακόπτη στο καλώδιο στο pin των 5V, ο οποίος θα είναι ελεγχόμενος από software (π.χ. ένα ρελέ συνδεδεμένο με την σειριακή θύρα)
Panagiotis Georgiadis
HBM Netherlands B.V.
www.twitter.com/HimWithCurls