Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2007
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
Cómo obtener el título del cd insertado?

ya, me cansé ... he buscado toda la tarde por esta simple función y simplemente no la encuentro .. he buscado en google, he buscado en los foros, y nada.

Haber, les cuento ...

Necesito listar todos los CD-ROM/DVD-ROM del pc, pero con el respectivo título que en ese momento tenga el cd-rom. (Por ejemplo, si ponemos el DVD de la película "La Roca", que me aparezca "La Roca - [D:]"). Listar las unidades no es ningún problema (ya cerré la ventana, pero estaba aquí en el foro sip :P), pero el problema me viene con la etiqueta de la unidad: en ninguna parte sale cómo obtenerlo

Alguien sabe cuál es la función que hace eso? Yo sé que existía una función para eso, pero no logro acordarme cuál es

Saludos !!
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
  #2  
Antiguo 09-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que puedes usar la función "GetVolumeInformation" del API de Win32. Tienes varios ejemplos de uso en Koders, por ejemplo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 09-07-2007
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
efectivamente con GetVolumeInformation se puede obtener este dato, aunque la API es un poco complicado .. pero encontré otra página al respecto que lo explica con manzanitas

http://www.delphicorner.f9.co.uk/articles/wapi2.htm

ahora mismo estoy leyendo ...

Gracias de todas maneras !!
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
  #4  
Antiguo 09-07-2007
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
Listo !!

Código Delphi [-]
procedure ObtenerInfo;
var
  drive       : char;
  pVolName    : PChar;
  pFSBuf      : PChar;
  SectPerCls,
  BytesPerCls,
  FreeCls,
  TotCls      : DWord;

begin
  for drive := 'A' to 'Z' do
   begin
    if GetDriveType(PChar(drive + ':\')) in [DRIVE_CDROM] then
     begin
      GetMem(pVolName, MAX_PATH);
      GetMem(pFSBuf, MAX_PATH);
      GetVolumeInformation(PChar(drive + ':\'), pVolName, MAX_PATH, nil,
                           SectPerCls, BytesPerCls, pFSBuf, MAX_PATH);
      GetDiskFreeSpace(PChar(drive + ':\'), SectPerCls, BytesPerCls, FreeCls, TotCls);
      if FormatFloat('0.00', (SectPerCls * BytesPerCls * TotCls / 1000000)) = '0.00' then
       Form1.ComboBox1.Items.Add('No hay CD o DVD en [' + drive + ':\]')
      else
       Form1.ComboBox1.Items.Add(PChar(pVolName) + ' - [' + drive + ':\]');

      FreeMem(pVolName, MAX_PATH);
      FreeMem(pFSBuf, MAX_PATH);
     end;
   end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 ComboBox1.Clear;
 ObtenerInfo;
 ComboBox1.DroppedDown := TRUE;
end;

Tan cortito como eso era

SS:

Saludos !!
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
  #5  
Antiguo 09-07-2007
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
PD :

lo incluí en el gran programa gran en el cual va, y a la primera ejecución me mandó el error de buffer overflow

Claro, justo tenía un dvd puesto y al recurrir al dvd, el espacio total era muchisimo más grande que lo que un DWord puede soportar...

Intenté declarar tipo LongWord pero aún así le da un buffer overflow ...

Ahora la pregunta: alguien conoce algún tipo más grande que los que acabo de nombrar ?

Por el momento le desactivé la opción de revisar los overflow, pero me gustaría tenerlo andando bien, yo la verdad me quedé como plop cuando vi que ni siquiera los LongWord eran suficientes ...

Saludos !!
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener titulo de una columna MaMu OOP 1 29-06-2007 23:58:00
Obtener ID_Direccion recien insertado Durbed SQL 8 19-08-2005 02:57:58
Obtener ClaveMaestra del registro insertado. jplj Conexión con bases de datos 11 20-05-2004 00:18:33
Obtener el último registro insertado mutant09 SQL 3 04-05-2004 20:59:21
¿Como obtener el titulo de las ventanas que se ban abriendo en windows? jorch_yr Varios 2 15-01-2004 20:17:19


La franja horaria es GMT +2. Ahora son las 22:23:48.


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
Copyright 1996-2007 Club Delphi