PDA

Ver la Versión Completa : Número de cd?


ShakeRock
21-02-2004, 07:41:14
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:


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 :

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
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
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
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.


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
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