Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Obtener ruta "Mis archivos recibidos" de MSN Messenger (https://www.clubdelphi.com/foros/showthread.php?t=39650)

Black_Ocean 26-01-2007 03:01:48

Obtener ruta "Mis archivos recibidos" de MSN Messenger
 
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

Código Delphi [-]
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 que es ideal para este tipo de cosas y tú mismo puedes insertar un nuevo truco.

// Saludos

seoane 26-01-2007 03:08:07

Código Delphi [-]
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

Cita:

Empezado por seoane
Código Delphi [-]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


La franja horaria es GMT +2. Ahora son las 15:55:47.

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