Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Sistemas operativos > Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Crear instalador de Stationery

Hola amigos

se que esta es una pregunta fuera del ambito de delphi.. pero toy con este cachito...y en una de esas tengo k hacer un programita en delhi pa' solucionarlo

necesito hacer un fondo de correo coorporativo para Outlook (el del office)... eso es fácil, incluso lo tengo echo...

mi problema es que necesito hacer un instalador de dicho fondo, manualmente se como hacerlo, pero tengo más de 40 estaciones, y me piden que el fondo de correo se modifique cada cierto tiempo.. y a esta altura estoy un poco complicado, eso de pasearme por todos los equipo... (me quita mucho tiempo)

entonces, lo que quiero hacer es lo sgte:

hacer un programa y ponerlo en un directorio compartido en la red... mandar un correo con un link a dicha ruta y que el programa me instale en forma automatica los archivos..,es decir me copie lor archivos en en Pc del Usuario en cierta ruta (serán distinta para cada usuario y computador), al menos la ruta del usuario...

Ej. Pc1

C:\Documents and Settings\Usuario1\Datos de Programa\Microsoft\Diseño de Fondo\Fondo1.html

Ej. Pc2
C:\Documents and Settings\Usuario2\Datos de Programa\Microsoft\Diseño de Fondo\Fondo1.html

entonces, necesitaria saber lo sgte:

1.- como consigo el nombre de la carpeta del usuario (ruta)
2.- como copio 2 arcivos a la ruta antes rescatada
3.- que el programa se ejecute en forma transparente para el usuario.. (pero k cuando termine aparesca un mensaje de proceso ya realizado...)
4.- condición de que si existe el archivo lo copie igual y sin preguntar (siempre le pongo el mismo nombre al fondo.. asi que si se actualiza no cambie nada...)

y bueno,,,, eso seria...
__________________
BlueSteel

Última edición por BlueSteel fecha: 13-09-2007 a las 23:36:48.
Responder Con Cita
  #2  
Antiguo 13-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Le echaste un vistazo al programa para actualizar que coloque aquí:
http://www.clubdelphi.com/foros/show...03&postcount=4
Responder Con Cita
  #3  
Antiguo 13-09-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Gracias seoane

se ve muy interesante.. aunque no entendi casi nada., pero trataré de ver si puedo adivinar algo de tu codigo...

otra consulta.. que programa se ejecuta aqui ? se debe compilar el proyecto y ese se ejecuta???

Parece que necesitaré una clase super-hiper-avanzada...
__________________
BlueSteel

Última edición por BlueSteel fecha: 13-09-2007 a las 23:56:33.
Responder Con Cita
  #4  
Antiguo 14-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
El programa se ejecuta y se mantiene en ejecución pero oculto. Cada 15 minutos comprueba si hay nuevas actualizaciones y, si las hay, las realiza. Quizá tu no necesites esto, puede que con solo una pasada te llegue, si es así elimina la función "Loop" y en el programa sustituye la llamada a "Loop", por la llamada a "Vamos". Así solo se ejecutara una vez.

Aun así, puede que el programa siga siendo excesivo. Pero encontraras en el casi todas las respuestas que buscabas, como encontrar una carpeta del sistema (perfil, temporal, etc), como ejecutar un programa sin formulario, como copiar un archivo encima de otro (incluso forzando la copia), etc ...
Responder Con Cita
  #5  
Antiguo 14-09-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Ya lo puede hacer

Hola Saone...

al final realice lo sgte para ejecutarlo

utilice la funcion GetUserName para optener el nombre de usuario....

Código Delphi [-]
Function GetUserName:String;
Var
   PcUser  : PChar;
   DwUsize : DWord;
Begin
   DwUsize := 21;
   GetMem( PcUser, DwUsize);
   Try
      If Windows.GetUserName( PcUser, DwUsize ) then
         Result := PcUser
   Finally
      FreeMem( PcUser );
   End;
End;



con esto
Código Delphi [-]
If not DirectoryExists(Concat('C:\Documents and Settings\',GetUserName,'.Dominio)) Then

pregunto si existe el directorio Usuario.Dominio...si es así, ejecuto

Código Delphi [-]
Archivo1 := Concat('C:\Documents and Settings\',GetUserName,'\Datos de programa\Microsoft\Diseños de fondo\FondoA.jpg');
CopyFile(PChar('\\Servidor\Stationery\Fondo de Huachipato.jpg'),PChar(Archivo1),FALSE);


Esto me funciona bien desde un Form Visual, pero quiero traspasarlo a un Console Application, pero no se cual seria la estructura correcta (hace mucho tiempo que deje el turbo pascal.. y ando perdido entero....

hasta el momento tengo esto... pero me da errores...


Código Delphi [-]
program Project1;
Uses
  FileCtrl;  // Para el DirectoryExists
{$APPTYPE CONSOLE}
Type
   Private
   Function GetUserName:String;
   End;
Var
  Archivo1, Archivo2 : String;
uses
  SysUtils;
Function GetUserName:String;
Var
   PcUser  : PChar;
   DwUsize : DWord;
Begin
   DwUsize := 21;
   GetMem( PcUser, DwUsize);
   Try
      If Windows.GetUserName( PcUser, DwUsize ) then
         Result := PcUser
   Finally
      FreeMem( PcUser );
   End;
End;
begin
    If not DirectoryExists(Concat('C:\Documents and Settings\',GetUserName,'.Dominio)) Then
       Begin
            Archivo1 := Concat('C:\Documents and Settings\',GetUserName,'\Datos de programa\Microsoft\Diseños de fondo\FondoA.jpg');
            Archivo2 := Concat('C:\Documents and Settings\',GetUserName,'\Datos de programa\Microsoft\Diseños de fondo\FondoA.htm');
       End
    Else
       Begin
            Archivo1 := Concat('C:\Documents and Settings\',GetUserName,'.Dominio\Datos de programa\Microsoft\Diseños de fondo\FondoA.jpg');
            Archivo2 := Concat('C:\Documents and Settings\',GetUserName,'.Dominio\Datos de programa\Microsoft\Diseños de fondo\FondoA.htm');
       End;
     CopyFile(PChar('\\Servidor\Stationery\FondoA.jpg'),PChar(Archivo1),FALSE);
     CopyFile(PChar('\\Servidor\Stationery\FondoA.jpg'),PChar(Archivo2),FALSE);
end.

Me podrias ayudar un poco con este codigo....
__________________
BlueSteel

Última edición por BlueSteel fecha: 14-09-2007 a las 16:19:02.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear Instalador 4-0 C++ Builder 2 18-02-2007 00:17:27
Crear instalador salvanano Varios 14 05-09-2006 20:31:11
crear instalador, ejecutar al iniciar i crear desinstalador vivamotos C++ Builder 1 25-08-2006 14:13:01
Crear instalador solovaer Varios 1 13-01-2006 10:22:12
crear instalador: .exe, .ini jmlifi Varios 2 07-12-2005 20:11:24


La franja horaria es GMT +2. Ahora son las 10:24:57.


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
Copyright 1996-2007 Club Delphi