Maxcim
|
GUARULHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 08/09/2008 14:28 hs
Olá amigos! tenho aki um projeto que vai atendender a varias empresa simultaneamente. gostaria de obter informações sobre qual a melhor maneira de se fazer. vou criar icones (atalhos diferentes pra cada empresa. com um arquivo INI com as configuraçes de cada base de dados) o problema é..... o usuario abiu o sistema na empresa A e depois abiu na empresa B ( simultaneamente) qdo clicar de novo quero evitar que se abra uma nova instancia das empresas já abertas. desde já agradeço...
|
|
|
|
|
Postada em 08/09/2008 15:43 hs
maxcim, eu faço diferente, quando o usuario vai entrar no sistema, na minha tela de login ele digita usuario , senha , empresa, e todas as minhas tabelas tem um campo codigo da empresa, a partir dai tudo fica mais facil, quando for fazer relatorios, etc.. é so tirar da empresa que ele entrou no sistema
|
|
|
Maxcim
|
GUARULHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 08/09/2008 16:28 hs
oi alexandre... é o meu ta assim no login ele vai selecionar qual empresqa usar, porem não me da opção de rodas ambas simultamemente, pq coloquei uma função "app.previnstance" que não deixa abrir mais de uma isntancia ao mesmo tempo. porem se tirar o "app.previnstance" commo controlar se a instancia daquela determinada empresa já esta rodando?
|
|
|
Donkey
|
PRESIDENTE PRUDENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 09/09/2008 08:41 hs
Cara, eu tive um problema parecido... quando eu faço login eu marcava no banco de dados o ultimo usuario usado e já selecionava ele no proximo login. Acontece que o dono abriu uma segunda academia e decidiu por um banco on line, dai o problema foi que se alguem entrasse na academia 1, na academia 2 aparecia o nome do infeliz,pois eu gravava tambem a ultima academia usada. Eu resolvi isso criando um .TXT, ao entrar no sistema ele abre esse txt e pega dali a academia e usuario usado da ultima vez. Vc pode fazer igual, criar um txt que fala qual empresa esta sendo usada no momento, ou no seu caso tambem pode ser no banco de dados, marca qual ta sendo usada e abre apenas uma diferente.
T+
|
|
|
|
Postada em 09/09/2008 23:22 hs
Crie mutação no windows, aqui eu fiz uma mutação EmpresaX e pode fazer outros formulários ou outros aplicativos detectar se essa mutação existe enquanto o aplicativo responsável pela mutação estiver ativo.
Const ERROR_ALREADY_EXISTS = 183& Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As Any, ByVal bInitialOwner As Long, ByVal lpName As String) As Long Private Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load() Dim hMutex As Long 'Tenta criar uma nova mutação de EmpresaX hMutex = CreateMutex(ByVal 0&, 1, "EmpresaX") 'A mutação existe? If (Err.MaxDllError = ERROR_ALREADY_EXISTS) Then 'Apaga tudo ReleaseMutex hMutex CloseHandle hMutex
MsgBox "Mais de uma instância detectada, isto não é igual ao PrevInstance," & vbCrLf & _ "faça o teste abrindo este programa várias vezes com o nome do arquivo diferente." End Else 'Códigos Load aqui End If End Sub
'Diga não ao POG kkkk
|
|
|
Macaubal
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 10/09/2008 08:28 hs
no FormLoad ou no Main de cada sistema coloque
If App.PrevInstance = True Then MsgBox "< < < < << Sistema já está aberto em outra janela >> > > > >", vbInformation
|
|
|