 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Mar 13 Nov, 2007 3:03 am Asunto: Retomando el tema de "Averiguar el Device Name". |
|
|
hola
Estoy aca preguntando por un tema que puso el autor philips el dia Mar 30 Oct, 2007 12:15 am con el nombre Averiguar el Device Name y la respuesta se la dio el Administrador Leo...
leo le responde con un codigo para reconocer los puertos que tiene la pc y otro para reconocer las unidades que hay en la pc como A:\\, C:\\, D:\\, etc, y me convenia la informacion pues estaba trabajando en un proyecto similar , pero no me da toda la informacion que necesito , pues lo probe y sale algo como esto:
A:\\[]
C:\\[]
D:\\[]
y lo que yo necesito es que me de algo como esto
A:\\Disco de 3 1/2
C:\\Disco local
D:\\Doisco local
comprenden , he probado con la ayuda y cambiando codigos pero no doy con nada que me ayude :
el codigo original es :
| Código: |
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int size = GetLogicalDriveStrings(0, 0);
std::vector<char> buffer(size+1); // #include<vector>
GetLogicalDriveStrings(size, &buffer[0]);
String str = "";
char* drive = &buffer[0];
while (*drive) {
char etiq[256] = "";
GetVolumeInformation(drive, etiq, sizeof(etiq)-1, 0, 0 ,0 ,0 ,0);
str += String().sprintf("%s [%s]\n", drive, etiq);
drive += strlen(drive) + 1;
}
ShowMessage(str);
} |
un millon de gracias anticipadas urgentes
saludos
ifrit _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
philips Capt

Registrado: 16 Nov 2005Mensajes: 154
|
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Mie 14 Nov, 2007 5:06 am Asunto: |
|
|
philips un millon de gracias por darme la direccion de esa pagina , pero te comento que no se mucho de delphi y por lo tanto no se implementar ese codigo que me has dado en C++ , por el resultado que muestra alli estoy casi seguro de qe ese codigo me servira , pero necesito de favor que me ayudes a implementar el codigo en c++
muchas gracias y disculpa por las molestias
saludos ifrit _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 14 Nov, 2007 4:55 pm Asunto: |
|
|
No es Delphi, es Visual Basic y lo que muestra básicamente ese código es el uso de la función del API "GetDriveType", quedaría algo así:
| Código: | char* tipos[] = { "No Instalado", "No Instalado",
"Extraible", "Fijo", "Remoto", "CDROM", "RAMDISK" };
String str = "";
for (int numDisco = 0; numDisco <= 25; numDisco++)
{
char strDisco[] = { numDisco + 65, ':', '\\', '\0' };
int ret = GetDriveType(strDisco);
if (ret > 1)
{
str += String().sprintf("%02d %s --> %d %s\n",
numDisco, strDisco, ret, tipos[ret]);
}
}
ShowMessage(str); |
(En el código del hilo anterior entre corchetes lo que aparece es la etiqueta del disco) |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Jue 15 Nov, 2007 7:30 am Asunto: |
|
|
leo mil gracias por ayudarme , pero aun tengo dudas :
la unidad de lectura de disquetes 3 1/2 que es la A:\\ en este caso me la nombra como extraible y no creo que seto sea correcto aun no he probado con una memoria flash, pero m,as menos estoy me estan uds ayudadndo a dar con mi duda, como yo podria hacer para que me salgas algo asi
A:\\dico 3 1/2
C:\\ dico local
.
.
.
y asi consecutivamente con todas las unidades, es decir que no sea la etiqueta , sino el tipo de unidad?
gracias
ifrit _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
philips Capt

Registrado: 16 Nov 2005Mensajes: 154
|
Publicado: Jue 15 Nov, 2007 10:29 pm Asunto: |
|
|
Hola
Al ejecutar el código que te ha puesto Leo, te dice claramente el tipo de unidad que tienes:
"Extraible", "Fijo", "Remoto", "CDROM", "RAMDISK"
Si no te gustan el nombre "Extraible", sustituyelo por "Diskette", al igual que "Fijo" por "Disco Duro" y así sucesivamente
De no ser esto lo que necesitas, la verdad que no me entero muy bien
Phil |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Vie 16 Nov, 2007 1:25 pm Asunto: |
|
|
error mio leo y philips, es cierto , no me habia fijado en ese detalle
perdonenme y sobre todo un sin fin de agradecimientos ....
saludos ifrit
 _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|