Eliminar BAT de carga do aplicativo

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Eliminar BAT de carga do aplicativo

Mensagem por JoséQuintas »

Descobri agora que no W8 o atalho para arquivo BAT não é permitido.
Uso o BAT por causa da atualização automática, que vai trocando o nome do EXE, por isso o atalho não é direto ao EXE.

Minha primeira idéia é um EXE intermediário, que vai carregar o EXE mais novo da pasta.
Lógico, a pesquisa é limitada ao nome do aplicativo "JPA*.EXE", pra evitar problemas.

Minha dúvida:
Aquele raio do modo offline do Windows, que pode não atualizar o diretório na pesquisa.

Alguma observação sobre isso?


Nota:
O EXE sempre trabalha com a pasta atual
O BAT acaba sendo um adicional pra posicionar pasta.
A princípio, a única coisa que poderia dar errado seria o modo offline do Windows, onde a estação pode não ficar sabendo de arquivos novos na pasta.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Eliminar BAT de carga do aplicativo

Mensagem por asimoes »

Quintas,

Fiz um teste aqui no meu notebook windows 8.1 e consegui criar atalho para um arquivo bat e executou
Screen Shot 04-01-16 at 03.41 PM.PNG
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Eliminar BAT de carga do aplicativo

Mensagem por JoséQuintas »

Lá testei e não foi.
Não sei se é porque o BAT está na pasta mapeada, ou é coisa do antivírus.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Eliminar BAT de carga do aplicativo

Mensagem por Daniel »

Ola Jose

você usa um exe por maquina ou mapeia o exe no servidor?

eu uso um exe por maquina para o exe do servidor ficar livre para poder copia um exe novo,
e os exe de cada maquina checa a data do exe do servidor se for maior copia o novo exe
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Eliminar BAT de carga do aplicativo

Mensagem por JoséQuintas »

Máquina local:
- Atalho
- ODBC MySQL, se usar MySQL
- Componentes de NFE, se usar NFE e não houver outra opção

Servidor:
- EXE
- DBFs, se houver
- hbnetio rodando como serviço, se houver
- Servidor MySQL, se houver
- Componentes de NFE, se for pelo servidor
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Eliminar BAT de carga do aplicativo

Mensagem por rochinha »

Amiguinhos,

Jose Quintas
Nas propriedades deste .BAT modifique para executar como Administrador em Atalho\Avançado.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Eliminar BAT de carga do aplicativo

Mensagem por JoséQuintas »

Ainda não coloquei em prática, mas tô gostando da idéia do EXE que mencionei.
Vai dar até a opção do usuário atualizar manualmente, bastando salvar o EXE na pasta.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Ricardo C. Freitas
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 14 Jan 2016 17:33
Localização: Vila Velha

Eliminar BAT de carga do aplicativo

Mensagem por Ricardo C. Freitas »

Boa tarde José Quintas,


Aqui eu utilizo um EXE que faz o mapeamento para o servidor e carrega o EXE da aplicação.
Se desejar me manda um e-mail que envio o projeto para você.


At+
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Eliminar BAT de carga do aplicativo

Mensagem por Daniel »

]o exemplo do EXE que eu uso
hello.prg
programa exe
(4.89 KiB) Baixado 44 vezes
e como chamo o EXE

Código: Selecionar todos

cLocal        := DiskName() +':' + DirName(DiskName()) + '\hello.exe'
      cDataLocal    := FileDate(cLocal)
      cDataServidor := FileDate(cBase + 'hello.exe')
      cHoraLocal    := FileTime(cLocal)
      cHoraServidor := FileTime(cBase + 'hello.exe')
      cLocalServidor:= cBase + 'hello.exe'
      If cDataLocal < cDataServidor
      	Copy File &cLocalServidor To &cLocal
      	InKey(2)
      EndIf

      cLocal        := DiskName() +':' + DirName(DiskName()) + '\menu.exe'
      cDataLocal    := FileDate(cLocal)
      cDataServidor := FileDate(cBase + 'menu.exe')
      cHoraLocal    := FileTime(cLocal)
      cHoraServidor := FileTime(cBase + 'menu.exe')
      cLocalServidor:= cBase + 'menu.exe'
      nFlag := MB_OK + MB_SETFOREGROUND + MB_SYSTEMMODAL + MB_ICONINFORMATION

      If cDataLocal < cDataServidor
      	MessageBoxTimeout('Ha uma Nova Versão do Programa no Servidor'+ chr(10)+chr(13)+;
	     		'Atualizando Agora...', 'Aviso do Sistema', nFlag, 3000)
     	   ShellExecute(0, "open","HELLO.EXE", cLocalServidor + ' ' + cLocal + ' ' + cCaminhoServidor)
     		Quit
      ElseIf cDataLocal == cDataServidor
        	If cHoraLocal < cHoraServidor
        		MessageBoxTimeout('Ha uma Nova Versão do Programa no Servidor'+ chr(10)+chr(13)+;
        			'Atualizando Agora...', 'Aviso do Sistema', nFlag, 3000)
     		   ShellExecute(0, "open","HELLO.EXE", cLocalServidor + ' ' + cLocal + ' ' + cCaminhoServidor)
     			Quit
        	EndIf
      EndIf
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Eliminar BAT de carga do aplicativo

Mensagem por JoséQuintas »

Isso de verificar nova versão já tenho no EXE.
O EXE novo vai ser só pra carga mesmo.

Meu aplicativo se chama JPA.EXE
As versões vão se chamar JPA1.EXE, JPA2.EXE, JPA3.EXE, etc.
Se o usuário instalar manual, por download, pode ser JPA(2).EXE, JPA(3).EXE, etc.
O EXE de carga apenas verifica qual o mais novo na pasta dos EXEs (JPA*.EXE), e continua executando na mesma pasta default que foi definida.

Sempre trabalho com a pasta default, assim funciona em qualquer lugar.
Só copiar a pasta, criar o atalho e pronto.

Como o aplicativo aceita parâmetros, este programa repassa os parâmetros.

Fiz este aqui:

Código: Selecionar todos

REQUEST HB_Codepage_PTISO

#include "directry.ch"
#include "hbwin.ch"

PROCEDURE Main( cmdParam1, CmdParam2, cmdParam3, cmdParam4, cmdParam5 )

   LOCAL oDirExe, oFile, oExe, cPath

   Set( _SET_CODEPAGE, "PTISO" )
   SET DATE BRITISH
   SET EPOCH      TO Year( Date() ) - 90

   cPath := hb_Argv(0)
   cPath := Left( cPath, Rat( "\", cPath ) )
   cmdParam1 := iif( cmdParam1 == NIL, "", cmdParam1 )
   cmdParam2 := iif( cmdParam2 == NIL, "", cmdParam2 )
   cmdParam3 := iif( cmdParam3 == NIL, "", cmdParam3 )
   cmdParam4 := iif( cmdParam4 == NIL, "", cmdParam4 )
   cmdParam5 := iif( cmdParam5 == NIL, "", cmdParam5 )

   oDirExe := Directory( cPath + "JPA*.EXE" )

   IF Len( oDirExe ) == 0
      MsgExclamation( "Não encontrado EXE na pasta " + cPath )
      RETURN
   ENDIF

   oExe := { oDirExe[ 1, F_NAME ], oDirExe[ 1, F_SIZE ], oDirExe[ 1, F_DATE ], oDirExe[ 1, F_TIME ] }


   FOR EACH oFile IN oDirExe
      IF Dtos( oFile[ F_DATE ] ) + oFile[ F_TIME ] > Dtos( oExe[ F_DATE ] ) + oExe[ F_TIME ]
         oExe := { oFile[ F_NAME ], oFile[ F_SIZE ], oFile[ F_DATE ], oFile[ F_TIME ] }
      ENDIF
   NEXT
   WAPI_ShellExecute( NIL, "open", cPath + oExe[ 1 ], cmdParam1 + " " + cmdParam2 + " " + cmdParam3 + " " + cmdParam4 + " " + cmdParam5, hb_cwd(), SW_SHOWNORMAL )
   RETURN


FUNCTION MsgExclamation( cText )

   wapi_MessageBox( wapi_GetActiveWindow(), cText, "Atenção", WIN_MB_ICONASTERISK )
   RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder