Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/12/2006, à 20:21

Compte anonymisé

[Résolu]Ouvrir & fermer un lecteur de Cd

Salut,

Voilà, j'ai un PC avec un cache devant mon lecteur de CD. (Pas pratique du tout)
J'ai commencé un script pour éjecter le cd et fermer celui-ci, mais je suis nul en la matière.
le lecteur s'ouvre bien mais se ferme de suite. Je peux mettre entre deux un sleep 10 par exemple mais je dépendrai des 10 secondes.
Ce que je voudrais c'est un clic sur le script = il s'ouvre et un second clic = il se ferme.
Et aussi quand je clique sur ce script qu'il me donne pas le choix entre: "Lancer dans un terminal"/ "Afficher"/ "annuler" ou "Lancer" mais que ça soit transparent.


#!/bin/sh -v

eject /media/cdrom0
mount /media/cdrom0

Merci par avance de votre aide.
Bye.

Dernière modification par Compte anonymisé (Le 01/01/2007, à 17:28)

#2 Le 29/12/2006, à 20:29

alexises

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

je dirais qu'il faut travailler avec les condition
mais il faudrais pouvoir vérifier si le lecteur cd est monter


/!\ aveugle ne pas matraquer /!\
¨¨¨                                       ¨¨¨

il est ou le bouton poster ?

Hors ligne

#3 Le 29/12/2006, à 22:07

Link31

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Crée un fichier vide /tmp/cd_opened (touch /tmp/cd_opened) si il n'existe pas puis ouvre le lecteur, et si il existe supprime le fichier puis ferme le lecteur.

Quelque chose du genre :

if [ -f /tmp/cd_opened ]
       rm /tmp/cd_opened
       mount /media/cdrom0
else
       eject /media/cdrom0
       touch /tmp/cd_opened
fi

(je suis assez mauvais en scripts shell...)

Hors ligne

#4 Le 30/12/2006, à 01:10

Haplo

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

golgot200 a écrit :

#!/bin/sh -v

eject /media/cdrom0
mount /media/cdrom0

Merci par avance de votre aide.
Bye.

Pour le peut que je sais, l'action de monter ton CD fait fermer ton lecteur...

Ne serai-il pas possible de le mettre en deux partie ?

Pour ouvrir :

#!/bin/sh -v

eject /media/cdrom0


et pour fermer :

#!/bin/sh -v

mount /media/cdrom0


non ? wink

Hors ligne

#5 Le 30/12/2006, à 01:31

Haplo

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

ah ok...

et y a pas moyen de faire un truc dans le genre

If lecteur de CD ouvert
{
mount /media/cdrom0
} else {
eject /media/cdrom0
}

?

(je ne connait vraiment pas grand chose en SH, plus en PHP alors bon... je tente de m'exprimé comme je peut ^^ wink

mais l'état du lecteur CD doit etre donné par une commande... wink

Hors ligne

#6 Le 30/12/2006, à 01:46

Haplo

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

j'ai peut-etre mieu meme big_smile



If mount /media/cdrom0
{
eject /media/cdrom0
} else {
mount /media/cdrom0
}

pas plus simple ? smile

Hors ligne

#7 Le 30/12/2006, à 01:58

Haplo

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

oui, je ne sais pas comment mettre l'attribut de l'état logique dans le IF... je suis en train d'apprendre la smile (la c'était juste pour savoir si c'était ce que tu voulais wink )

on va voir sa wink big_smile

Hors ligne

#8 Le 30/12/2006, à 02:05

Haplo

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

peut-tu te servir du dernier script de cette page ? http://linuxfr.org/forums/26/17853.html


en le remplaçant comme cela :

>cat plop.sh
#!/bin/sh

DEVICE=/dev/cdrom

[ -n "$1" ] && DEVICE="$1"

head -c 1 "$DEVICE" 1>/dev/null 2>&1

if [ $? = 0 ]; then
    eject /media/cdrom0
else
    mount /media/cdrom0
fi

Hors ligne

#9 Le 30/12/2006, à 02:07

Frz

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Quelque chose de ce genre devrait fonctionner :

MOUNT_PATH="/media/cdrom0"

if [ $(mount | grep -c "$MOUNT_PATH") -gt 0 ]

	# Le lecteur est monté :
	then
		eject $MOUNT_PATH
	
	# Le lecteur n'est pas monté :
	else
		mount $MOUNT_PATH
fi

Hors ligne

#10 Le 30/12/2006, à 03:26

Link31

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Ça fonctionne ce que j'avais mis dans mon premier post ?

if [ -f /tmp/cd_opened ]
then
       rm /tmp/cd_opened
       mount /media/cdrom0
else
       eject /media/cdrom0
       touch /tmp/cd_opened
fi

(j'ai rajouté le then qui manquait)

Hors ligne

#11 Le 30/12/2006, à 18:46

Link31

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Le fichier /tmp/cd_opened est un simple fichier vide qui sert à vérifier si l'exécution précédente du script a ouvert ou fermé le lecteur. Normalement on utilise des variables, mais ce n'est pas possible dans ton cas puisque le shell n'est pas le même d'une exécution à l'autre et les variables sont donc perdues.

Pour l'affichage de la fenêtre, je ne sais pas, ça doit pouvoir se changer dans la configuration de Gnome, mais je ne connais pas très bien cet environnement. Si Nautilus est programmé pour afficher cette fenêtre pour tous les scripts, il n'y a certainement aucun moyen de le changer (du moins pour ce script en particulier). Essaie de créer un lanceur (sur le bureau ou ailleurs) qui exécute le script, peut-être que la fenêtre ne s'affichera pas...

Hors ligne

#12 Le 01/01/2007, à 15:28

lunique

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Pour le probleme de la demande.
Tu copie ton script dans ~/ce_que_tu_veux
Sur le bureau, clic droit, créer un lanceur et dans commande tu mets "~/ce_que_tu_veux" et roulez jeunesse ^ ^

Hors ligne

#13 Le 01/01/2007, à 18:19

lunique

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Si tu veux pouvoir mettre des caracteres speciaux ( ) [ ] \ / et espace (il y en a peut etre d'autre) il faut les "echapper" avec le caractere \ quand tu mets le chemin. Donc par exemple : /home/golgot200/Ouvrir\ Fermer

Hors ligne

#14 Le 01/01/2007, à 19:39

Haplo

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

non, il ne le supprime pas, il prend en compte que c'est dans le nom du bidule smile

Hors ligne

#15 Le 01/01/2007, à 20:14

lunique

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Haplo avait bien compris ce que tu voulais dire, il rectifiait juste la formulation  ^ ^. En fait, slash-espace ne supprime pas l'espace, mais supprime sa signification de separation d'argument. Sa doit faire la meme chose en mettant le mon dossier entre quote : 'mon dossier'

Hors ligne

#16 Le 01/11/2007, à 22:34

sylvaing01

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

bonjour, je ressort ce vieux post pour rajouter ma version pour ouvrir/fermer le tiroir d'un lecteur CD.

Il est écrit en C, et fait 20 lignes seulement. je vous le donne:

#include <linux/cdrom.h>
#include <fcntl.h>

int main(int argc,char **argv)
{ int fd = -1,status;

  if(argc!=2){return 1;}
  fd = open(argv[1], O_RDONLY|O_NONBLOCK, 0);
  if (fd > 0)
   {
    status = ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
    if (status < 0) {return 1;}
    switch (status)
    {
    case CDS_TRAY_OPEN:
      ioctl(fd, CDROMCLOSETRAY, 0);break;
    case CDS_NO_DISC:
    case CDS_DISC_OK:
      ioctl(fd, CDROMEJECT, 0);
    case CDS_DRIVE_NOT_READY:
    ;
    }
  close(fd);
  }
}

Copiez le dans un fichier, que vous nommez, par exemple, tiroir.c

ensuite dans le terminal vous tapez:

Code:
gcc -o tiroir tiroir.c

puis:

Code:
sudo install -m 755 tiroir /bin

et voilà, reste plus qu'à créer un raccourcis sur le bureau, et le tour est joué!

Petites précision:

la commande "sudo install" va placer le programme dans /bin, Vous pouvez choisir le chemin où placer le programme.

le programme accepte donc un argument: le lecteur de votre choix:
chez moi /dev/hdc pour lecteur cd et /dev/hdd pour mon graveur dvd. /dev/cdrom et /dev/dvdrw également

sous KDE, il est possible de créer une entrée dans le menu K et de lui associer une touche ou une combinaison de touche.

Par exemple, j'ai associé les touches multimédia "Favoris" et "Accueil" de mon logitech X300, et çà fonctionne impec.

Dernière modification par sylvaing01 (Le 01/11/2007, à 22:42)

Hors ligne

#17 Le 03/11/2007, à 16:19

david breizh

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

sinon il y a la commande eject -T /dev/? qui doit savoir si la porte et ouverte ou pas et choisi en dépits l'action à faire mes de marche plus sous gusty la merde tiens.


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#18 Le 03/11/2007, à 16:31

sylvaing01

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

Salut golgot200,

Chez moi tout fonctionne, j'ai testé sur plusieurs pc çà fonctionne impec.

Dernière modification par sylvaing01 (Le 03/11/2007, à 16:32)

Hors ligne

#19 Le 04/11/2007, à 14:36

sylvaing01

Re : [Résolu]Ouvrir & fermer un lecteur de Cd

salut david breizh,

J'ai regardé les sources de eject et appemment il ne détecte pas si le tiroir du lecteur est ouvert, il effectue un timing a l'ouverture et détermine ainsi si le tiroir était déjà ouvert ou non à ce que j'ai compris. quoi qu'il en soit le pb de golgot200 reste un mistère puisque son lecteur s'ouvre avec la commande eject mais pas avec mon programme. pourtant le programme eject fait exactement comme mon programme pour ouvrir le tiroir. Vraisemblablement le problème est ailleur...

Hors ligne