DaviSaba
|
SANTA ROSA DE VITERBO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/11/2005 06:39 hs
Oi ... estou com um problema. Os usuários abre o sistema 2 vezes e esta causando alguns problemas ... Tem como eu saber se o exe esta sendo executado e nao permitir que abra novamente ? Obrigado
|
|
|
|
Daniel
|
SÃO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/11/2005 06:46 hs
If App.PrevInstance Then 'verifica se ja tem uma cópia rodando Msgbox "Já existe uma cópia do Sistema Procalc sendo executada" End If
dsmn
|
|
|
|
Postada em 18/11/2005 07:52 hs
Uma forma mais completa é esta, pois caso o aplicativo esteja sendo executada, minimizada ou atrás de outra janela então ele é ativado Dim SaveTitle as string If App.PrevInstance Then SaveTitle = App.Title App.Title = "... segunda chamada ao mesmo programa." Me.Caption = "... segunda chamada ao mesmo programa, serei fechado" 'se for a Sub Main, a linha acima, obviamente, não existe 'as linhas abaixo fecham a segunda chamada e alternam para 'a primeira AppActivate SaveTitle SendKeys "% R", True End End If
|
|
|
VACA
|
LIMEIRA SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/11/2005 08:01 hs
procura como previnstance q eu jah perguntei isso faz uns dias.... em todo caso:
Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Sub ActivatePrevInstance() Dim OldTitle As String Dim PrevHndl As Long Dim result As Long OldTitle = App.Title App.Title = "Programa em execução" PrevHndl = FindWindow("ThunderRTMain", OldTitle) If PrevHndl = 0 Then PrevHndl = FindWindow("ThunderRT5Main", OldTitle) End If If PrevHndl = 0 Then PrevHndl = FindWindow("ThunderRT6Main", OldTitle) End If If PrevHndl = 0 Then Exit Sub End If PrevHndl = GetWindow(PrevHndl, 3) result = OpenIcon(PrevHndl) result = SetForegroundWindow(PrevHndl) End End Sub
Sub Main()
If App.PrevInstance = True Then ActivatePrevInstance End If
end sub
"Quando estou fraco, aí então é que sou Poderoso"
|
|
|