Bom dia....
Eu tenho um sistema que é single-instance, mas eu que implementei dentro de applicationEvents, no evento Statup, onde eu pego o processo e comparo, e vejo se já tem um processo com o mesmo nome em execução, então eu fecho a tentativa da segunda abertura
do sistema, mas eu gostaria de antes de fechá-la, chamar na tela a execução ativa, já tentei via API alguns códigos, mas como eu dou hide na tela e ela fica apenas no notify, não consigo chamar a tela, se a tela fica apenas minimizada funciona, será que alguém
poderia me ajudar, pois precisaria chamar a janela da aplicação que está hide e dar um show nela. O código abaixa funciona quando o form está minimizado, mas no meu sistema não permito que minimize e fique na taskbar, fica apenas o icone do notify.
'Verifica se o software já está sendo executado
'Não é permitido executar mais de uma instância do sistema ao mesmo tempo.
Dim emExecucao As Boolean
emExecucao = Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).Length > 1
'Para uso em debug
If Process.GetCurrentProcess.ProcessName.ToString.Contains(".vshost") Then emExecucao = False
If emExecucao Then
'Pego o processo atual que está executando, através do nome do meu precesso que estou tentando iniciar
Dim pInstance As Process = clsMetodosGerais.GetRunningInstance(Process.GetCurrentProcess().ProcessName)
If Not pInstance Is Nothing Then
Dim handle As IntPtr = pInstance.MainWindowHandle
If Not IntPtr.Zero.Equals(handle) Then
clsMetodosGerais.ShowWindow(handle, 1)
clsMetodosGerais.SetForegroundWindow(handle)
End If
End If
End If
O problema é que quando o form está minimizado a propriedade MainWindowHandle tem valor, quando está hide vem zerado, alguém sabe como eu poderia resolver este problema, sem a possibilidade de permitir que minimize a tela ficando no taskbar.
Obrigado.