Atualização de sistema pelo GoogleDrive

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

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

Atualização de sistema pelo GoogleDrive

Mensagem por asimoes »

Pessoal,

Estou usando mais uma opção de atualização de sistemas além do tradicional ftp.
Comecei os testes com o GoogleDrive e tá funcionando belezinha.

A primeira coisa que eu fiz foi criar uma conta no google para utilizar o serviço do googledrive que disponibiliza 15GB de graça.

Acessando o googledrive deve ser baixado o sincronizador (Connect Drive to your desktop), após a instalação informar a pasta de sincronismo de arquivos.

A pasta no inicio tem que estar vazia.

Eu criei uma pasta DRIVE e fiz as funções abaixo para testar.

Na página do googledrive https://drive.google.com subi os arquivos meus de teste abaixo:

Código: Selecionar todos

FUNCTION ChecaAtualizacaoGoogleDrive
PUBLIC nTmpLog:=60
   IF nAtualizaLog != NIL
      HB_IdleDel( nAtualizaLog )
   ENDIF
   nAtualizaLog:=HB_IdleAdd( {|| ExecutaAtualizacaoGoogleDrive() } )
RETURN .T.  

FUNCTION ExecutaAtualizacaoGoogleDrive
LOCAL hEstacaoCobranca, cEstacaoCobranca
   IF nTempoUltimaVerificacao = Nil
      nTempoUltimaVerificacao:=Seconds()
   ENDIF
   IF Seconds() - nTempoUltimaVerificacao >= nTmpLog
      hb_threadStart( { |oThr|AtualizaAsaPrevGoogleDrive() })
      nTempoUltimaVerificacao:=Seconds()
   ENDIF
   hwg_doevents()
RETURN Nil

FUNCTION AtualizaAsaPrevGoogleDrive
LOCAL aDir, I
   
   IF File(HB_DirBase()+"ESTACAO.INI")

      hEstacaoCobranca:=HB_ReadIni(HB_DirBase()+"ESTACAO.INI" )
      cEstacaoCobranca:=hEstacaoCobranca["CONFIGURACAO"]["EstacaoCobranca"]

      IF AllTrim(GetEnv("COMPUTERNAME")) = AllTrim(cEstacaoCobranca) //Somente uma estção faz a atualização do sistema.
         aDir:=Directory(HB_DirBase()+"DRIVE\ASAPREV*.*")
         IF Len(Adir) > 0
            TRY
               FOR I:=1 TO Len(aDir)
                  IF Upper(aDir[I,1]) = "ASAPREV.EXE"
                     RenameFile(HB_DirBase()+aDir[I,1],HB_DirBase()+aDir[I,1]+"_"+DataHora()+".EXE" ) //Atualização "OnTheFly" renomeando.
                  ENDIF
                  __CopyFile(HB_DirBase()+"DRIVE"+HB_PS()+aDir[I,1],HB_DirBase()+aDir[I,1]) //Atualização "OnTheFly" copiando o novo executável.
                  FErase(HB_DirBase()+"DRIVE"+HB_PS()+aDir[I,1])
               NEXT
               IF File(HB_DirBase()+"ASAPREV.NEW") //Arquivo contendo as informações referentes a atualização.
                  hb_threadStart({|oThr|TocarSom("update.wav")}) //Alerta para chmamar a atenção do usuário, usuário está ciente.
                  MensagemTimeOut(FileStr(HB_DirBase()+"ASAPREV.NEW"),"Atenção",30000,1) //Mostra a mensagem referente a atualização (espera 30 seg).
                  Envia_Email({HB_DirBase()+"ASAPREV.NEW"},"Log de confirma‡Æo de atualiza‡Æo de sistema em: "+HB_DtoC(Date(),"DD/MM/YYYY")+HB_EOL()+", feito pelo GoogleDrive.",.F.) //Envia email para mim informando que foi feito a atualização.
                  RenameFile(HB_DirBase()+"ASAPREV.NEW",HB_DirBase()+"ASAPREV_"+DataHora()+".NEW" ) //Salva para histórico.
               ENDIF
            END
         ENDIF
      ENDIF
   ENDIF
RETURN Nil
►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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Atualização de sistema pelo GoogleDrive

Mensagem por fladimir »

Vlw pela contribuição vou testar.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Atualização de sistema pelo GoogleDrive

Mensagem por asimoes »

Pessoal,

Outra coisa, como a pasta é sincronizada, se gravar qualquer outro arquivo nela podemos acessar pela página do googledrive de qualquer lugar!
Por exemplo arquivos de erros do sistema etc...
►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
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Atualização de sistema pelo GoogleDrive

Mensagem por rochinha »

Amiguinhos,

:-Y

O interessante deste uso é o fato de se poder efeuar o backup de dados do cliente para um local além da empresa, transparente e seguro.
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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Atualização de sistema pelo GoogleDrive

Mensagem por fladimir »

Boa tarde...

De onde vem nAtualizaLog e qual o valor inicial, pois não encontrei ela declarada no código então da forma q esta apresenta erro.

A mesma coisa para nTempoUltimaVerificacao.

Poderia definir pra nós.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Atualização de sistema pelo GoogleDrive

Mensagem por Toledo »

fladimir escreveu:De onde vem nAtualizaLog e qual o valor inicial
Veja linhas 3 e 6 do código.
fladimir escreveu:A mesma coisa para nTempoUltimaVerificacao
Veja linhas 11 e 12 do código.
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Atualização de sistema pelo GoogleDrive

Mensagem por fladimir »

Deve ser muito chocolate... kkk

Desculpa ai moçada...

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Atualização de sistema pelo GoogleDrive

Mensagem por asimoes »

Fiz uma atualização na rotina este exemplo está melhor.

o Valor de QuebraHTML :="<br>"
Dentro do [code /code] aparece espaços

Código: Selecionar todos

STATIC nAtualizaLog2
STATIC nTempoUltimaVerificacao

FUNCTION MAIN

   ChecaAtualizacaoGoogleDrive()
   
RETURN Nil   

Código: Selecionar todos

FUNCTION ChecaAtualizacaoGoogleDrive
PUBLIC nTmpCheck:=60
   IF nAtualizaLog2 != Nil
      HB_IdleDel( nAtualizaLog2 )
   ENDIF
   nAtualizaLog2:=HB_IdleAdd( {|| ExecutaAtualizacaoGoogleDrive() } )
RETURN .T.

FUNCTION ExecutaAtualizacaoGoogleDrive
LOCAL hEstacaoCobranca, cEstacaoCobranca
   IF nTempoUltimaVerificacao = Nil
      nTempoUltimaVerificacao:=Seconds()
   ENDIF
   IF Seconds() - nTempoUltimaVerificacao >= nTmpCheck
      hb_ThreadStart(HB_THREAD_INHERIT_PUBLIC, @AtualizaAsaPrevGoogleDrive())
      nTempoUltimaVerificacao:=Seconds()
   ENDIF
   hwg_doevents()
RETURN Nil

FUNCTION AtualizaAsaPrevGoogleDrive
LOCAL aDir, I
   
   IF File(HB_DirBase()+"ESTACAO.INI")

      hEstacaoCobranca:=HB_ReadIni(HB_DirBase()+"ESTACAO.INI" )
      cEstacaoCobranca:=hEstacaoCobranca["CONFIGURACAO"]["EstacaoCobranca"]

      IF AllTrim(GetEnv("COMPUTERNAME")) = AllTrim(cEstacaoCobranca) //Somente uma estação faz a atualização do sistema.
         aDir:=Directory(HB_DirBase()+"DRIVE\UPDATE\ASAPREV.*") //Drive virtual do GoogleDrive
         IF Len(aDir) = 3
            TRY
               FOR I:=1 TO Len(aDir)
                  IF Upper(aDir[I,1]) = "ASAPREV.EXE"
                     RenameFile(HB_DirBase()+aDir[I,1],HB_DirBase()+aDir[I,1]+"_"+DataHora()+".EXE" ) //Atualização "OnTheFly" renomeando.
                  ENDIF
                  IF Upper(aDir[I,1]) = "ASAPREV.INI" //Arquivo contendo as informações referentes ao sistema.
                     RenameFile(HB_DirBase()+"ASAPREV.INI",HB_DirBase()+"ASAPREV_"+DataHora()+".INI" ) //Salva para histórico.
                  ENDIF
                  IF Upper(aDir[I,1]) = "ASAPREV.NEW" //Arquivo contendo as informações referentes ao sistema.
                     RenameFile(HB_DirBase()+"ASAPREV.NEW",HB_DirBase()+"ASAPREV_"+DataHora()+".NEW" ) //Salva para histórico.
                  ENDIF
                  CopyFile(HB_DirBase()+"DRIVE\UPDATE"+HB_PS()+aDir[I,1],HB_DirBase()) //Atualização "OnTheFly" copiando o novo executável.
                  FErase(HB_DirBase()+"DRIVE\UPDATE"+HB_PS()+aDir[I,1])
               NEXT
               IF File(HB_DirBase()+"ASAPREV.NEW") //Arquivo contendo as informações referentes a atualização.
                  hb_threadStart({|oThr|TocarSom("update.wav")}) //Alerta para chmamar a atenção do usuário, usuário está ciente.
                  hwg_MsgInfo(FileStr(HB_DirBase()+"ASAPREV.NEW"),"Atualização de Sistema") //Mostra a mensagem referente a atualização.
                  //MensagemTimeOut(FileStr(HB_DirBase()+"ASAPREV.NEW"),"Atenção",30000,1) //Mostra a mensagem referente a atualização (espera 30 seg).
                  //FF0000 = Vermelho
                  //AzulHTML    :='<span style="color:#0000FF">'
                  //VermelhoHTML:='<span style="color:#FF0000">'
                  //QuebraHTML  :="<br>"
                  //   cMensagem:='<span style="color:#0000FF">'+"Log de confirma‡Æo de atualiza‡Æo de sistema em: "+HB_DtoC(Date(),"DD/MM/YYYY")+"<br>"+;
                  //   '<span style="color:#FF0000">'+"Feito pelo GoogleDrive."
                   AzulHTML    :='<span style="color:#0000FF">'
                   VermelhoHTML:='<span style="color:#FF0000">'
                   QuebraHTML  :="<br>"
                   cMensagem:=AzulHTML    +"Log de confirma‡Æo de atualiza‡Æo de sistema em: "+HB_DtoC(Date(),"DD/MM/YYYY")+QuebraHTML+;
                             VermelhoHTML+"Feito pelo GoogleDrive."
                  Envia_Email({HB_DirBase()+"ASAPREV.NEW"},,cMensagem,.F.) //Envia email para mim informando que foi feito a atualização.
               ENDIF
            CATCH
               hwg_MsgStop("Erro na atualização do sistema.","Atenção")
            END
         ENDIF
      ENDIF
   ENDIF
RETURN Nil

FUNCTION CopyFile(cSource,cTarget)
LOCAL oFile, lOk:=.T.

   /*
   Mantém os atributos do arquivo de data e hora.
   CopyFile("asaprev.exe","c:\temp\") // copiar para um diretório
   CopyFile("asaprev.exe","c:\temp\asaprev2.exe") // copiar para um diretório com outro nome.
   */
   
   TRY
      oFile:=CreateObject("Scripting.FileSystemObject") 
   CATCH
      TRY
         oFile:=CreateObject("Scripting.FileSystemObject") 
      CATCH
         lOk:=.F.
      END
   END
   IF lOk
      TRY
         oFile:CopyFile(cSource, cTarget )
         //Copiar diretório.
         //oFile:CopyFolder("c:\mydocuments\letters\*","c:\tempfolder\")
      CATCH
         lOk:=.F.
      END
   ENDIF
RETURN lOk
►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)
Responder