Jump to content

saber se a aplicação esta a ser usada


duduml
 Share

Recommended Posts

Se a ideia é evitar que se possa correr mais do que uma instância, na página "My Project", algures, tens um visto que diz: "Make single instance application", ou algo parecido.

Check it.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Sendo assim, acho que podes ir lá testando processos:

        If Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then
            MsgBox("Já estou a correr. Bochecho!")
            End
        End If

Se ao apanharmos todos os processos com o nome do processo actual (o da aplicação) e essa array nos for devolvida com mais do que 1 elemento significa que já lá anda um a mais: o actual, mais o que já lá estava = 2

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Sendo assim, acho que podes ir lá testando processos:

        If Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then
            MsgBox("Já estou a correr. Bochecho!")
            End
        End If

Se ao apanharmos todos os processos com o nome do processo actual (o da aplicação) e essa array nos for devolvida com mais do que 1 elemento significa que já lá anda um a mais: o actual, mais o que já lá estava = 2

Lamento, mas o array não passa de 0...e não aparece "Bochecho!"...

Já tentei inventar, mas não resolvo nada...

CUMPS

"use windows, você merece!"

Link to comment
Share on other sites

O que pretendes fazer é detectar se o utilizador está a utilizar a aplicação, ou seja clicar com o rato, mover o rato, ou inserir dados com o teclado...

Se é isso não é tão simples como isso, deves ter algumas variáveis (flags) de controlo, que verificam se existiu movimento do rato na tua aplicação, e se foi pressionada alguma tecla. Deves ter uma outra que define o tempo de inactividade máximo e outra que veifica o tempo decorrido desde o último movimento, e que em cada movimento,key press, faças reset à variavel que define o tempo decorrido...

Não sei se deu para entender  🙂

Basicamente:

Utilizador faz login,

Inicias um timer a correr de 5 em 5 segundos por exemplo

tempoMax= 3 minutos (180 segundos)

tempoDecorrido = 0

Controlas os eventos MouseMove e KeyPress/Down no(s) Form(s) se ocorrem

tempoDecorrido = 0

Por cada tick (5 segundos)

tempoDecorrido += 5

Se tempoDecorrido >= tempoMax Então Fazes Logout

Link to comment
Share on other sites

É isso mesmo que eu quero....mas é um bocado trabalhoso estar a fazer isso tudo...dessa maneira...

era por isso que eu queria algo do género que o Ribeiro mandou...

Obrigado  r00tfixxxer!!! 🙂

CUMPS

"use windows, você merece!"

Link to comment
Share on other sites

o que eu percebi do código do ribeiro é que quando o array apssa-se de 1, significava que haveria mais que um processo da aplicação a correr, logo, estava em uso...

era muito melhor! imagina projectos gigantes....fazer pelo teu método, é complicadíssimo...

Cumps

"use windows, você merece!"

Link to comment
Share on other sites

Não te estou a perceber...

É assim, se queres limitar mais do que uma instância da aplicação a correr, tens a opção no Project Settings, e não precisas de nada desse código, que o que faz é verificar se existe mais do que um processo da mesma aplicação a correr.

Se queres bloquear a aplicação devido a inactividade, tens a minha opção.

Se queres terminar a aplicação por ocupar demasiada memória, isso já é outra conversa.

Por isso o que prentedes fazeR?

Link to comment
Share on other sites

"Se queres bloquear a aplicação devido a inactividade, tens a minha opção."

é isso mesmo....mas não há mesmo outra maneira???

"É assim, se queres limitar mais do que uma instância da aplicação a correr, tens a opção no Project Settings, e não precisas de nada desse código, que o que faz é verificar se existe mais do que um processo da mesma aplicação a correr." não posso usar isto para o que quero??

CUMPS

"use windows, você merece!"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.