Página 1 de 1

Para usuarios que teimam em criar atalho errado

Enviado: 03 Jul 2018 22:16
por JoséQuintas
Já comentei aqui sobre minha atualização automática.
Coisa simples, cada vez que baixa, é outro nome de EXE: JPA2.EXE, JPA3.EXE, JPA4.EXE, etc.
E na pasta tem um SJPA.EXE que executa o JPA*.EXE mais novo.

Até aí... tudo bem.
Mas tem usuário que consegue trocar o atalho, e criar direto para o EXE.
Resultado: fica EXE novo e velho ativos, às vezes até com mudanças de estrutura de DBF, e outras coisas mais.
Até perda de informações já causou.

Como impedir isso?
Simples... embuti o SJPA.EXE dentro do próprio JPA.EXE.

Código: Selecionar todos

   cPath    := hb_FNameDir( hb_ProgName() )
   oExeList := Directory( cPath + "JPA*.EXE" )
   ASort( oExeList, , , { | a, b | Dtos( a[ F_DATE ] ) + a[ F_TIME ] > Dtos( b[ F_DATE ] ) + b[ F_TIME ] } )
   IF Upper( oExeList[ 1, F_NAME ] ) != Upper( hb_FNameNameExt( hb_ProgName() ) )
      MsgExclamation( "JPA executado nao eh o EXE mais recente." + hb_Eol() + ;
         "Trocando para o EXE mais recente" + hb_Eol() + ;
         "Corrija o atalho alterando pra SJPA.EXE" )
      WAPI_ShellExecute( NIL, "open", cPath + oExeList[ 1, F_NAME ], cParam, hb_cwd(), SW_SHOWNORMAL )
      QUIT
   ENDIF
Se o atalho estiver errado, executo o correto.... rs
Isso vai impedir de executar o velho, e impedir problemas....

Para usuarios que teimam em criar atalho errado

Enviado: 03 Jul 2018 22:23
por JoséQuintas
Tem complemento....

Para que isso dê totalmente certo, vai faltar apagar EXEs anteriores a esta versão.
Isso a atualização vai fazer, ou então ou vou fazendo conforme for passando em clientes (ou fazendo remoto).

Já comentei da outra vez:
O lado legal desse esquema:
O usuário pode fazer download do novo EXE e salvar na pasta do aplicativo.
Com essa rotina, já entra o EXE novo, e não precisa de nada adicional.