FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour GetLogicalDrives no me devuelve lo que necesito...
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
GetLogicalDrives no me devuelve lo que necesito...
Posted: Wed Jan 18, 2012 10:47 AM

Hola.

En la pc tengo puertos usb, uno de ellos tiene un plotter hp designjet 510, necesito conocer solo las unidades de usb donde exista un pendrive conectado,
la funcion GetLogicalDrives me devuelve todos "inclusive la del plotter", pero no quiero que me devuelva la del ploter.

Como puedo resolverlo? (aparentemente toma al plotter como una unidad pendrive, cualquier otra impresora conectada no pasa lo mismo).

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: GetLogicalDrives no me devuelve lo que necesito...
Posted: Wed Jan 18, 2012 11:14 AM

Debe existir una forma más eficiente de hacerlo, pero mientras prueba a comprobar la existencia de un fichero en cada uno de ellos, por ejemplo File( "test.txt" ), imagino que en los que no hay pendrive debe generar un error...

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: GetLogicalDrives no me devuelve lo que necesito...
Posted: Wed Jan 18, 2012 11:27 AM

Hola!
Antonio, corrijo lo q postie. no es con el ploter (fui a otra pc) son con las unidades de tarjetas que las pc traen en el frente. Si no tiene esas unidades no hay problema.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: GetLogicalDrives no me devuelve lo que necesito...
Posted: Wed Jan 18, 2012 12:30 PM
goosfancito wrote:Hola!
Antonio, corrijo lo q postie. no es con el ploter (fui a otra pc) son con las unidades de tarjetas que las pc traen en el frente. Si no tiene esas unidades no hay problema.


Goosfancito,

Aplícales esta función a las unidades que quieras comprobar:
Code (fw): Select all Collapse
/* *************************** */
FUNCTION lExistUSB( cDisk )
/* Se da el caso de que con un PenDrive (al menos el que yo he usado) las
funciones IsDisk() y lIsDir() dan .F..
Cuando se trata de una tarjeta de memoria (por ejemplo XD) insertada en
un lector de tarjetas externo conectado a un puerto USB, la IsDisk() sigue
dando .F. y la lIsDir() da .T..
Como lo que se pretende es poder saber que unidades USB son susceptibles de
usarse independientemente de PenDrive o tarjetas de memoria, se opta por
la función GetDiskFreeSpace() que da .T. tanto para PenDrive como para
tarjetas de memoria.
22/08/2010
*/

Local lExist        := .F.
Local nSetErrorMode := 0

nSetErrorMode := SETERRORMODE( 1 )

lExist := GetDiskFreeSpace( Left( cDisk, 1) + ":\" )

nSetErrorMode := SETERRORMODE( nSetErrorMode )

Return lExist
/* *************************** */

/* *************************** */
#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"

HB_FUNC( SETERRORMODE )
{
   hb_retni( SetErrorMode( hb_parni( 1 ) ) ) ;
}

#pragma ENDDUMP

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: GetLogicalDrives no me devuelve lo que necesito...
Posted: Wed Jan 18, 2012 12:49 PM

bien. andubo cambiando la funcion. por mi version vieja de fw.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/

Continue the discussion