PDA

Ver la Versión Completa : Obtener ruta "Mis archivos recibidos" de MSN Messenger


Black_Ocean
26-01-2007, 03:01:48
Autor: Black_Ocean

Bueno... Aquí les dejo por si lo necesitaran un ejemplo de una simple pero útil rutina que he realizado para obtener la ruta predeterminada de "Mis archivos recibidos" que utiliza MSN Messenger (testeado con la versión 8.0). :D


Uses
Registry;

function ObtenerRutaArchRecibidos(Clave: HKEY; SubClave, NombreValor: string): string;
var
Reg: TRegistry;
Buffer: string;
TamañoDato, BytesEscritos, i: integer;
begin
Result := '';
Reg := TRegistry.Create;
try
Reg.RootKey := Clave;
if Reg.OpenKey(SubClave, false) then
if Reg.ValueExists(NombreValor) then
if Reg.GetDataType(NombreValor) = rdBinary then
begin
TamañoDato := Reg.GetDataSize(NombreValor);
if TamañoDato > -1 then
begin
SetLength(Buffer, TamañoDato);
BytesEscritos := Reg.ReadBinaryData(NombreValor, Buffer[1], TamañoDato);
if BytesEscritos = TamañoDato then
begin
for i:= 0 to length(Buffer) -1 do
if Buffer[i] = #0 then
Delete(Buffer, i, 1);
Buffer := Trim(Buffer) + '\';
Result := Buffer;
end;
end;
end;
finally
Reg.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
RutaArchRecibidos: string;
begin
RutaArchRecibidos := ObtenerRutaArchRecibidos(HKEY_CURRENT_USER, '\Software\Microsoft\MSNMessenger\', 'FtReceiveFolder');
if RutaArchRecibidos <> '' then
ShowMessage('Ruta Mis archivos recibidos: ' + RutaArchRecibidos)
else
ShowMessage('Error');
end;


Espero que les sea de utilidad ;)

Cualquier aporte es bien recibido acerca de esta rutina :D

Cordiales saludos :P

roman
26-01-2007, 03:05:43
Pues muchas gracias. Y aunque no está de más ponerla aquí en los foros, recuerda que tenemos la sección de trucos (http://www.clubdelphi.com/trucos/) que es ideal para este tipo de cosas y tú mismo puedes insertar un nuevo truco.

// Saludos

seoane
26-01-2007, 03:08:07
for i:= 0 to length(Buffer) -1 do
if Buffer[i] = #0 then
Delete(Buffer, i, 1);


:confused: ¿Y esto?

Black_Ocean
26-01-2007, 03:13:11
Código Delphi [-] (http://www.clubdelphi.com/foros/#)for i:= 0 to length(Buffer) -1 do if Buffer[i] = #0 then Delete(Buffer, i, 1);


:confused: ¿Y esto?

Si ejecutaras esta rutina y la trazas entenderás el por qué ;)

Saludos :D