Interaction avec les peripheriques,

Résolu
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 29 oct. 2005 à 21:00
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 29 oct. 2005 à 21:33
bonjour,

je cherche a apprendre en C a pouvoir interagir avec les peripherique d'un ordinateur, par exemple ouvrir ou fermer le lecteur cd ou imprimer quelque chose directement depuis mon programme ...

merci d'avance

.

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 oct. 2005 à 21:33
Le C ne connait pas les périphs, il faut s'adresser au sytem, c'est son role par définition.
Exemple sous Windows:

void CdOpenCloseDrive()
{
MCI_OPEN_PARMS op;
DWORD flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE | MCI_OPEN_ELEMENT; op.dwCallback 0; op.lpstrAlias 0;
szCdName[0] = chCds[lPos];
op.wDeviceID = 0;
op.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
op.lpstrElementName = szCdName;
if(!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op)) {
if(bOpenDrive) mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);
else mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0);
mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0);
}
}

faut avoir mis les lettres des fdifférents lecteurs CD dans chCds[] avant.
C'était méthode compatible avec win98, now se fait par DeviceIoControl() en envoyant IOCTL_STORAGE_EJECT_MEDIA.

Impression, voir dans Petzold:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
Rejoignez-nous