Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Uso de API SHChangeNotify (https://www.clubdelphi.com/foros/showthread.php?t=70508)

diego007 25-10-2010 19:13:55

Uso de API SHChangeNotify
 
Hola amigos, estoy tratando de ejecutar el ejemplo que esta en la siguiente direccion:
http://delphi.about.com/od/kbwinshell/l/aa030403a.htm
pero no puedo usarlo, no se como instalar esta libreria, me explico mejor:
- Descargue el ejemplo que esta incluido en esta pagina
- descargue el componente SHChangeNotify.pas y lo copie a la carpeta donde de esta el programa.
- Trato de abrir el programa para despues compilarlo, pero me da error: "Class TSHChangeNotify not found", pongo ignorar error y continuo.
- Trato de compilar el programa, pero me sale error: "Form1.cn does not have a corresponding component".
Deceo conocer si alguien a podico ejecutar este ejemplo y como lo hizo, caso contrario alguien comose de algun ejemplo con el TShellChangeNotifier? necesito monitorear todos los cambios del disco C:\
De antemano muchas gracias por su ayuda

ecfisa 25-10-2010 20:43:18

Hola diego007.

No conozco esos componentes, pero en los pasos que detallas haber echo, no veo en ningún lado que hayas instalado
el package que contiene los componentes, no sé si lo omitiste por olvido. Pero si no es así, es claro que deberías instalarlo
primeramente para que funcionen.

En la misma página dice:
Cita:

Note: after you install the package containing those components (vclshlctrls.dpk), the component will be placed on the Samples tab of the component palette.
Saludos. :)

diego007 25-10-2010 20:56:04

Gracias por tu pronta respuesta ecfisa, tienes razon, no instale el pack. Pero yo considero que en este caso se refiere al componente original que tiene el delphi 7 que esta dentro de la pestaña "Samples" -> "TShellChangeNotifier"; revisando el texto no encuentro ningun link para descargar algun nuevo package. Por si acaso tu no lo encontraste?

white_zombie 25-10-2010 21:11:25

1 Archivos Adjunto(s)
Hola, como comenta ecfisa para ejecutar ese ejemplo necesitas instalar el componente en el IDE de delphi.

Si no quieres instalar el componente, puedes crearlo por código e ir asociando los eventos correspondientes.

Adjunto te paso el mismo ejemplo para que lo puedas probar sin instalar el componente.

Un Saludo.

ecfisa 25-10-2010 21:14:18

Hola diego.

Aca podés descargar la versión 1.5.

Saludos. :)

ecfisa 25-10-2010 21:20:15

Hola.

No estaba el post de white_zombie cuando edité el link...
Lo que él te adjunta es mucho mejor, ya que como te dice arriba, podés probarlo sin tener que instalar el package.
Luego decidirás si lo incorporas o no.

Saludos. :)

diego007 25-10-2010 21:48:38

Gracias por la ayuda [white_zombie] y ecfisa, el programa trabaja super bien :) Una ultima pregunta, como podria hacer para que automaticamente con un boton copie los archivos "Creados" a una carpeta X?
De nuevo gracias por toda su ayuda

white_zombie 25-10-2010 22:28:59

Puedes crear una lista (Tstringlist) y en el evento Oncreate del componente TSHChangeNotify añades todas las rutas de los archivos creados.

Mas o menos algo asi.

Código Delphi [-]
procedure TForm1.cnCreate(Sender: TObject; Flags: Cardinal; Path1: String);
begin
  List.Add(Path1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Cfiles: TSHFileOpStructA;
  I:integer;
begin
  for I:=0 to List.Count -1 do
  begin
    with Cfiles do
    begin
      wnd   := Application.Handle;
      wFunc := FO_copy;
      pFrom := PChar(List[i]);
      pTo   := PChar('Carpeta Destino');
      fFlags := FOF_NOCONFIRMATION;
    end;
    SHFileOperation(Cfiles);
  end;
end;

Un Saludo.

diego007 25-10-2010 22:34:55

ok :) Gracias por toda la ayuda!!!!


La franja horaria es GMT +2. Ahora son las 17:59:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi