Jump to content
duduml

saber se a aplicação esta a ser usada

Recommended Posts

duduml

Pessoal,

há maneira de saber se um programa esta a ser utilizado ou não???  😲

Já pesquisei, no entanto...nada encontrei....  :nono1:

Obrigado!

CUMPS


"use windows, você merece!"

Share this post


Link to post
Share on other sites
ribeiro55

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"

Share this post


Link to post
Share on other sites
duduml

🤔

Não, a ideia é mesmo ver se o utilizador esta a usar a aplicação, se não, bloquear ou terminar a sessão...mas só preciso mesmo de saber, como detectar isso...

CUMPS


"use windows, você merece!"

Share this post


Link to post
Share on other sites
ribeiro55

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"

Share this post


Link to post
Share on other sites
duduml

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!"

Share this post


Link to post
Share on other sites
Tuntankamon

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

Share this post


Link to post
Share on other sites
duduml

É 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!"

Share this post


Link to post
Share on other sites
Tuntankamon

Mas o que o ribeiro disse era só para verificar se a aplicação está a correr, não estou a ver como sabes se o utilizador está a utilizar ou não...  🤔

Share this post


Link to post
Share on other sites
duduml

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!"

Share this post


Link to post
Share on other sites
Tuntankamon

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?

Share this post


Link to post
Share on other sites
duduml

"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!"

Share this post


Link to post
Share on other sites
Tuntankamon

Sinceramente se existir desconheço...  🤔

Em relação à segunda questão... Não.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.