Ver Mensaje Individual
  #3  
Antiguo 20-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Vamos por partes, en el enlace que tu mencionas lo que piden es poder asociar un directorio a una letra de unidad, de tal forma que aparezca como un disco mas. Esto lo podemos hacer de la siguiente manera:
Código Delphi [-]
function AsociarLetra(Letra: Char; Ruta: String): Boolean;
var
  Buffer: Array [0..MAX_PATH] of Char;
begin
  if GetShortPathName(PChar(Ruta),@Buffer,Sizeof(Buffer)) > 0 then
    Result:= DefineDosDevice(0,PChar(Letra + String(':')),@Buffer)
  else
    Result:= FALSE;
end;

function BorrarLetra(Letra: Char): Boolean;
begin
  Result:= DefineDosDevice(DDD_REMOVE_DEFINITION,PChar(Letra + String(':')),nil);
end;

// Para hacer una asociacion
AsociarLetra('Z','C:\Archivos de programa');

// Para borrar la asociacion
BorrarLetra('Z');

En el ejemplo anterior asociamos la letra Z al directorio "c:\archivos de programa", ahora si vamos a "Mi PC" veremos que hay un disco nuevo (Z:\) que se corresponde con la carpeta. Esto es lo mismo que hace el comando Subst, ya un viejo conocido.

Ahora bien, leyendo tu primera pregunta, no creo que sea eso lo que quieres. Según entiendo yo, lo que tu quieres es que al abrir ese "disco vitual" tu puedas mostrar lo que a ti te de la gana. Eso ya lo veo mas difícil, para hacer eso necesitas crear un driver, y delphi no puede crear ese tipo de ejecutable.
Responder Con Cita