GNT sans publicité, site mobile, fonctionnalitées exclusives...

Déconnexion de matériel USB

Le
Kam
Salut,
j'ai un disque dur sur port USB qui me sert à faire des sauvegardes.
Jusque la, tout va bien.
Par contre, j'aimerais pouvoir automatiser la déconnection de ce disque.
Actuellement, je suis obligé de cliquer sur l'iocne de 'Déconnexion ou
éjection de matériel' (celle avec la fleche verte au dessus d'une carte
style PCMCIA), puis d'arrêter mon périphérique de stockage.

Quelle est la dll ou le composant qui permet de faire ça en programmant ?

Cela permettrait de plannifier dans le plannificateur de taches (logique)
une déconnection du matos une fois les sauvegardes finies.

Voili voila.
Merci d'avance !

Kam

Adresse mail : camille AT ankama DOT com
Lire les 7 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry
Le #9874841
Bonjour,

La méthode propre consisterait probablement a
appeller CM_Request_Device_Eject.

Plus crado mais ça marche (chez moi en tout cas :-)

const char *szDeviceDesc = "MiniUSB Wireless Adapter";
HWND hWndHotPlug = FindWindow(NULL, "Déconnexion ou éjection de matériel");

if (hWndHotPlug)
{
HWND hDeviceList = GetDlgItem(hWndHotPlug, 0x12D);

int niIndex = SendMessage(hDeviceList, LB_FINDSTRING, -1, (LPARAM)
szDeviceDesc);

if (niIndex != CB_ERR)
{
SendMessage(hDeviceList, LB_SETCURSEL, niIndex, 0);
PostMessage(hWndHotPlug, WM_COMMAND, 0x131, 0); // "Arreter"

Sleep(1000);

HWND hConfirm = FindWindow(NULL, "Arrêt d'un périphérique
matériel");
{
int niIndex2 = SendMessage(hConfirm, LB_FINDSTRING, -1,
(LPARAM) szDeviceDesc);

if (niIndex2 != CB_ERR)
{
SendMessage(hDeviceList, LB_SETCURSEL, niIndex2, 0);
SendMessage(hConfirm, WM_COMMAND, 0x1, 0); // "OK"
}
}
}
}

C'est l'ancetre de l'automation :-)

Salut,
j'ai un disque dur sur port USB qui me sert à faire des sauvegardes.
Jusque la, tout va bien.
Par contre, j'aimerais pouvoir automatiser la déconnection de ce disque.
Actuellement, je suis obligé de cliquer sur l'iocne de 'Déconnexion ou
éjection de matériel' (celle avec la fleche verte au dessus d'une carte
style PCMCIA), puis d'arrêter mon périphérique de stockage.

Quelle est la dll ou le composant qui permet de faire ça en programmant ?

Cela permettrait de plannifier dans le plannificateur de taches (logique)
une déconnection du matos une fois les sauvegardes finies.

Voili voila.
Merci d'avance !

Kam

Adresse mail : camille AT ankama DOT com







--
« Willy, j'ai mangé le chat. »
Thierry
Le #9874831
Bonjour,

La méthode propre consisterait probablement a
appeller CM_Request_Device_Eject.

Plus crado mais ça marche (chez moi en tout cas :-) :
const char *szDeviceDesc = "MiniUSB Wireless Adapter";
HWND hWndHotPlug = FindWindow(NULL, "Déconnexion ou éjection de matériel");

if (hWndHotPlug)
{
HWND hDeviceList = GetDlgItem(hWndHotPlug, 0x12D);

int niIndex = SendMessage(hDeviceList, LB_FINDSTRING, -1, (LPARAM)
szDeviceDesc);

if (niIndex != CB_ERR)
{
SendMessage(hDeviceList, LB_SETCURSEL, niIndex, 0);
PostMessage(hWndHotPlug, WM_COMMAND, 0x131, 0); // "Arreter"

Sleep(1000);

HWND hConfirm = FindWindow(NULL, "Arrêt d'un périphérique
matériel");
{
int niIndex2 = SendMessage(hConfirm, LB_FINDSTRING, -1,
(LPARAM) szDeviceDesc);

if (niIndex2 != CB_ERR)
{
SendMessage(hDeviceList, LB_SETCURSEL, niIndex2, 0);
SendMessage(hConfirm, WM_COMMAND, 0x1, 0); // "OK"
}
}
}
}

Salut,
j'ai un disque dur sur port USB qui me sert à faire des sauvegardes.
Jusque la, tout va bien.
Par contre, j'aimerais pouvoir automatiser la déconnection de ce disque.
Actuellement, je suis obligé de cliquer sur l'iocne de 'Déconnexion ou
éjection de matériel' (celle avec la fleche verte au dessus d'une carte
style PCMCIA), puis d'arrêter mon périphérique de stockage.

Quelle est la dll ou le composant qui permet de faire ça en programmant ?

Cela permettrait de plannifier dans le plannificateur de taches (logique)
une déconnection du matos une fois les sauvegardes finies.

Voili voila.
Merci d'avance !

Kam

Adresse mail : camille AT ankama DOT com










--
« Willy, j'ai mangé le chat. »
Kam
Le #9874791
Bon, je vais regarder le CM_Request_Device_Eject.
C'est pas que j'aime pas ta méthode, mais..... un peu bourrine, quandmême :)

Merci beaucoup pour le CM_...

Kam

"Thierry"
Bonjour,

La méthode propre consisterait probablement a
appeller CM_Request_Device_Eject.

Plus crado mais ça marche (chez moi en tout cas :-) :
const char *szDeviceDesc = "MiniUSB Wireless Adapter";
HWND hWndHotPlug = FindWindow(NULL, "Déconnexion ou éjection de


matériel");

if (hWndHotPlug)
{
HWND hDeviceList = GetDlgItem(hWndHotPlug, 0x12D);

int niIndex = SendMessage(hDeviceList, LB_FINDSTRING, -1, (LPARAM)
szDeviceDesc);

if (niIndex != CB_ERR)
{
SendMessage(hDeviceList, LB_SETCURSEL, niIndex, 0);
PostMessage(hWndHotPlug, WM_COMMAND, 0x131, 0); // "Arreter"

Sleep(1000);

HWND hConfirm = FindWindow(NULL, "Arrêt d'un périphérique
matériel");
{
int niIndex2 = SendMessage(hConfirm, LB_FINDSTRING, -1,
(LPARAM) szDeviceDesc);

if (niIndex2 != CB_ERR)
{
SendMessage(hDeviceList, LB_SETCURSEL, niIndex2, 0);
SendMessage(hConfirm, WM_COMMAND, 0x1, 0); // "OK"
}
}
}
}

> Salut,
> j'ai un disque dur sur port USB qui me sert à faire des sauvegardes.
> Jusque la, tout va bien.
> Par contre, j'aimerais pouvoir automatiser la déconnection de ce disque.
> Actuellement, je suis obligé de cliquer sur l'iocne de 'Déconnexion ou
> éjection de matériel' (celle avec la fleche verte au dessus d'une carte
> style PCMCIA), puis d'arrêter mon périphérique de stockage.
>
> Quelle est la dll ou le composant qui permet de faire ça en programmant


?
>
> Cela permettrait de plannifier dans le plannificateur de taches


(logique)
> une déconnection du matos une fois les sauvegardes finies.
>
> Voili voila.
> Merci d'avance !
>
> Kam
>
> Adresse mail : camille AT ankama DOT com
>
>






--
« Willy, j'ai mangé le chat. »


Thierry
Le #9874741
Bonjour,

Kam a écrit :

Bon, je vais regarder le CM_Request_Device_Eject.
C'est pas que j'aime pas ta méthode, mais..... un peu bourrine,
quandmême :)



Si ça marche sur la machine sur laquelle ca doit fonctionner, c'est le
principal :-)

Merci beaucoup pour le CM_...



Tu peux te baser sur ces samples du DDK : NTDDKsrcgeneralsetup

--
« Willy, j'ai mangé le chat. »
Thierry
Le #9874731
Bonjour,

Ca doit pouvoir se faire avec WMI aussi (avec même un petit scrit VBS), à
condition (il me semble) que ca soit un 2K ou plus.

--
« Willy, j'ai mangé le chat. »
Publicité
Suivre les réponses
Poster une réponse
Anonyme