FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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. ShakeRock |
#2
|
||||
|
||||
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.
__________________
:) |
#3
|
||||
|
||||
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;
__________________
:) |
#4
|
||||
|
||||
solo añadir :
Código:
uses mplayer, mmsystem; |
#5
|
||||
|
||||
Cómo se me han podido olvidar las uses???, muchas gracias lepe por corregirme!!
__________________
:) |
#6
|
|||
|
|||
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 ShakeRock |
#7
|
||||
|
||||
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 ..... 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 |
#8
|
||||
|
||||
Lepe... no estoy molesto.... no te preocupes, si lo dices por eso, todo lo contrario.
__________________
:) |
#9
|
||||
|
||||
Cita:
Saludos |
#10
|
||||
|
||||
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; |
#11
|
|||
|
|||
Cita:
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 |
|
|
|