Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   Unidad del sistema (https://www.clubdelphi.com/foros/showthread.php?t=49949)

madmai 04-11-2007 16:44:44

Unidad del sistema
 
Hola quisiera saber si hay alguna variable o metodo que indique la unidad en que esta instalado windows, mi aplicacion funciona bien cuando el sistema esta ubicado en C:\ pero cuando el sistema esta ubicado en otra unidad me da problemas, quisiera saber si hay algo para averiguar la unidad del sistema. gracias de antemano

Caral 04-11-2007 16:50:23

Hola
No entiendo la razon, un ejecutable funciona en cualquier parte.
Ahora debo suponer que trabajas con alguna base de datos, entonces si te dara problemas dependiendo de la conexion que tengas.
Me equivoco?.
Saludos

madmai 04-11-2007 17:09:38

trabajo con unidades de usb
 
dependiendo de las que ponga me funciona bien o no, por eso querria saber como puedo saber desde delphi la unidad del sistema, ya que si esta antes de la unidad del sistema me funciona bien, si no no eso cuando esta el sistema en otra unidad distinta de c:\, trabajo con drivecombobox y segun si esta la unidad de pendrive antes o despues del sistema y en funcion de que unidad esta el sistema me funciona o no. gracias de antemano

seoane 04-11-2007 17:16:05

Un par de preguntas:
  1. ¿Necesitas saber en que unidad esta instalado Windows ,o en que unidad esta instalado tu programa?
  2. ¿Necesitas saber en que unidad esta instalado windows, o cual es la partición que tiene el arranque del sistema?
  3. Dices también que dependiendo de donde este instalado windows te funciona o no. ¿Que error te da cuando no funciona?

madmai 04-11-2007 19:26:35

necesito saber en que unidad esta el sistema, error ninguno simplemente coge el drive que no toca

seoane 04-11-2007 19:57:29

Pues así, de pronto, se me ocurren tres formas de hacerlo.

Método 1:
Código Delphi [-]
function GetSystemDrive: String;
var
  Buffer: array[0..MAX_PATH] of Char;
begin
  FillChar(Buffer,Sizeof(Buffer),#0);
  if GetWindowsDirectory(@Buffer,MAX_PATH) <> 0 then
    Result:= ExtractFileDrive(String(Buffer))
  else
    Result:= EmptyStr;
end;

Método 2:
Código Delphi [-]
function GetSystemDrive: String;
var
  Buffer: array[0..MAX_PATH] of Char;
begin
  FillChar(Buffer,Sizeof(Buffer),#0);
  if GetSystemDirectory(@Buffer,MAX_PATH) <> 0 then
    Result:= ExtractFileDrive(String(Buffer))
  else
    Result:= EmptyStr;
end;

Método 3:
Código Delphi [-]
function GetSystemDrive: String;
begin
  Result:= GetEnvironmentVariable('SystemDrive');
end;

Las preguntas que te hacia en mi anterior respuesta tenían una razón. Te hacia esas preguntas porque me parecía extraño que necesitaras saber el nombre de la unidad, normalmente lo que se necesita es saber la ruta de algún directorio en especial (el directorio de windows, el de los perfiles, el de archivos de programa, el temporal, etc ...) y para cada uno de esos directorios existen funciones especiales para averiguar donde están. No siempre el directorio de windows y el de los perfiles tiene porque estar en el mismo disco ...

De todas formas, si solo querías saber la unidad ahí arriba lo tienes :)

madmai 04-11-2007 23:38:11

gracias mañana probare, un saludo

Neftali [Germán.Estévez] 05-11-2007 15:58:12

Cita:

Empezado por madmai (Mensaje 243324)
...mi aplicacion funciona bien cuando el sistema esta ubicado en C:\ pero cuando el sistema esta ubicado en otra unidad me da problemas, quisiera saber si hay algo para averiguar la unidad del sistema.

De todas formas, creo que el problema radica en saber qué hace o que necesita tu programa para que si el sistema no está en C falle.
Sabiendo eso y corrigiendolo no tendrás esa limitación.

madmai 06-11-2007 09:06:23

ya lo solucione gracias


La franja horaria es GMT +2. Ahora son las 18:32:30.

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