USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  VB detectando o início/fim de outro aplicativo
Edwilson
não registrado
ENUNCIADA !
Postada em 21/08/2008 10:40 hs   
Pessoal,

Gostaria de saber o seguinte:

Eu uso o HOTSYNC pra trazer dados do Palm para um BD ACCESS. Depois de transferidos os dados, através da minha aplicação em VB, eu transfiro os dados do BD ACCESS pra uma tabela do BD Firebird, para apuração, pois é um sistema de pesquisas.

Bom, o que eu sesejo saber é que se existe um meio da minha aplicação VB detectar o momento do início e do fim da execução do HOTSYNC, pois gostaria que ao terminar a execução do HOTSYNC, o meu sistema informasse que era hora de transferir os dados do ACCESS para o FIREBIRD, entenderam?

Preciso disto, pra não correr o erro de o operador esquecer de realizar esta operação.

Alguém sugere alguma coisa?
   
CODER_EXPERT
não registrado
ENUNCIADA !
Postada em 21/08/2008 16:09 hs   
Em Palm não sei se as APIs são as mesmas, já programei pra Pocket e tem diferenças, mas se fosse um aplicativo comum para PC com Windows XP/NT seria os códigos a seguir:

'------------------------------------------------------------------------------------------
Option Explicit

Const TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000
Const MAX_PATH As Integer = 260

Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
End Type

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32Min Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Function Monitorar(Processo As String) As Boolean
Dim hSnapShot As Long, uProcess As PROCESSENTRY32
Dim retProcesso As String, r As Long

Dim bIniciou As Boolean
Dim bExecutando As Boolean

Do
  bExecutando = False

    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
    uProcess.dwSize = Len(uProcess)
    r = Process32Min(hSnapShot, uProcess)
    Do While r
      DoEvents
      Sleep 1
      
      retProcesso = Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, _
                    InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0))
      
      If UCase(Processo) = Left$(UCase(retProcesso), Len(Processo)) Then
        If Not bIniciou Then
          bIniciou = Not bIniciou
          MsgBox "O Processo " & Processo & " iniciou.", vbInformation
        End If

        bExecutando = True
      End If

      r = Process32Next(hSnapShot, uProcess)
    Loop
    CloseHandle hSnapShot
    
    If bIniciou And Not bExecutando Then
      bExecutando = False

      MsgBox "O Processo " & Processo & " finalizou.", vbInformation
      Monitorar = True
      Exit Function
    End If
Loop
End Function

'Depois é só Chamar a função
Call Monitorar("Arquivo.exe")

'------------------------------------------------------------------------------------------

Você poderá chamar a função Monitorar() mesmo antes do processo Iniciar e ele te dará uma resposta de Início e Fim do aplicativo usando APIs que retornam os processos em execução da área de trabalho do windows sem travar o seu programa, para facilitar mais ainda coloquei a função Monitorar() para retornar True quando o processo finalizar.
   
CODER_EXPERT
GOIÂNIA
GO - BRASIL
Postada em 21/08/2008 16:27 hs            
Ah agora entendi, vai obter dados do Palm para um BD Access do PC hehe, então esses códigos vão resolver seu problema... flw
     
Edwilson
não registrado
ENUNCIADA !
Postada em 21/08/2008 17:16 hs   
Ok CODER_EXPERT,

Vou testar e retorno o resultado.

Obrigado pela ajuda.
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página