Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Número de cd? (https://www.clubdelphi.com/foros/showthread.php?t=7631)

ShakeRock 21-02-2004 07:41:14

Número de cd?
 
Existe algún número o código en el cd que lo identifique de otros dc's?
En caso de que exista, cómo puedo leerlo con delphi?

Desde ya, muchas gracias. :D


ShakeRock

DarkByte 21-02-2004 11:08:44

Me parece que si existe, ¿Te acuerdas que en win98, cuando sacabas un cd que estaba leyendose, te arrojaba un pantallazo azul con el número de serie?, eso sí, sacarlo no se, pero existir me parece que existe.

DarkByte 21-02-2004 11:10:13

He encontrado esto en clubdelphi: Cómo sacar el número de serie de un cd de audio, truco 424:

Código:

procedure TForm1.Button1Click(Sender: TObject);
 
  function AudioCDNum(Unidad: char):string;
  var
    mp            : TMediaPlayer;
    MInfo        : TMCI_INFO_PARMS;
    SerialN      : array[0..255] of char;
 
  begin
    Result:='';
    mp := TMediaPlayer.Create(nil);
 
    try
      with mp do
      begin
        Visible    := false;
        Parent    := Application.MainForm;
        Shareable  := true;
        DeviceType := dtCDAudio;
        FileName  := Unidad+':';
        Open;
      end;
      Application.ProcessMessages;
 
      FillChar(SerialN, sizeof(SerialN), #0);
      FillChar(MInfo, sizeof(MInfo), #0);
      MInfo.lpstrReturn := @SerialN;
      MInfo.dwRetSize := 255;
      if mciSendCommand(Mp.DeviceId,
                        MCI_INFO,
                        MCI_INFO_MEDIA_IDENTITY,
                        longint(@MInfo)) <> 0
        then Raise Exception.Create('Error');
      mp.Close;
 
      Result:=String(SerialN);
    finally
      Application.ProcessMessages;
      mp.free;
    end;
  end;
 
begin
  Label1.Caption:=AudioCDNum('F');
end;

Espero que te sirva de ayuda...

Lepe 21-02-2004 12:54:32

solo añadir :

Código:

uses mplayer, mmsystem;
:)

DarkByte 21-02-2004 12:58:55

:o Cómo se me han podido olvidar las uses???, muchas gracias lepe por corregirme!! ;)

ShakeRock 24-02-2004 07:52:39

Código identificador de cd
 
DarkByte, he probado el código pero no funciona correctamente en los cd de datos; que es lo que yo requiero. Por otro lado, estuve investigando y en la ayuda de Easy CD Creator 5 encontré esto:

código de barras
Código exclusivo de un CD. En los CD grabables, este número suele estar impreso en el círculo interior transparente del CD. Algunas grabadoras de CD también pueden leer digitalmente esta información.

Busqué más información en Internet pero no encontré nada.

De todas maneras muchas gracias por interesarte ;)
y a Lepe gracias por su agregado :D

ShakeRock

Lepe 24-02-2004 12:24:16

DarkByte, no te he corregido, ya que tu código no tiene errores, solo he "completado la información", puesto que me gustó tu código :)

ShakeRock, el código si funciona para CD de datos, de hecho, no lo probé con CD de Audio, sino con CD de datos, que era en lo que yo estaba interesado. Tampoco he metido 200 Cds para ver si se repite el nº del cd ..... :D he probado con 2 cds y al menos, el número que me da es distinto.

Si te da algun error, dinos que estas haciendo.

Saludos

DarkByte 24-02-2004 22:01:28

Lepe... no estoy molesto.... no te preocupes, si lo dices por eso, todo lo contrario.

Lepe 25-02-2004 12:48:20

Cita:

Empezado por DarkByte
Lepe... no estoy molesto.... no te preocupes, si lo dices por eso, todo lo contrario.

mmmm, Creo que tendré que leer un poco mas de Literatura, a ver si agrando mi vocabulario, porque algunas veces uso palabras que pueden parecer "antipáticas" cuando mi intención es comentar algo. ¿Algun buen libro que me recomienden? :)

Saludos

seoane 26-02-2004 02:21:58

Prueba con esto
 
Este codigo deberia de funcionar para obtener el numero de serie, solo lo probe con cds de datos, pero creo que es lo que buscabas.

Código:

var
  Serial: DWORD;
  Dummy: Cardinal;
begin
  // La letra de la unidad de CDs supongo que es la D
  if GetVolumeInformation( 'D:\',nil,0,@Serial,Dummy, Dummy,nil,0) then
    begin
      // Aqui haz lo que quieres con el numero de serie
    end;
end;


ShakeRock 26-02-2004 05:27:04

Cita:

Empezado por Lepe
ShakeRock, el código si funciona para CD de datos, de hecho, no lo probé con CD de Audio, sino con CD de datos, que era en lo que yo estaba interesado. Tampoco he metido 200 Cds para ver si se repite el nº del cd ..... :D he probado con 2 cds y al menos, el número que me da es distinto.

Si te da algun error, dinos que estas haciendo.

Saludos

Hola a todos!!!; Lepe funcionar, funciona, solo que no hace lo que yo quiero :D .
Pasa que lo he probado en un cd virgen y no funciona (cuando tuviese que funcionar), ya que, supuestamente el número de cd está grabado desde fábrica (o tuviese que ser así). Y al intentar leerlo no lee nada.

Agradesco cualquier comentario sobre el tema, como si estoy bien orientado en el tema, o si existe algún error en lo que digo.

Gracias a todos por su ayuda, pero sigo sin solución :(

ShakeRock


La franja horaria es GMT +2. Ahora son las 11:12:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi